2016-05-17 2 views
1

Nous avons une situation où un UAC envoie un INVITE au serveur et le serveur répond avec 3xx-6xx. Si l'UAC n'envoie pas de accusé de réception sur cette réponse, il n'y a pas de retransmission.Mobicents - JAIN-SIP-RI ne retransmet pas la réponse d'invite d'erreur

Selon RFC3261 (https://www.ietf.org/rfc/rfc3261.txt) si aucun accusé de réception a été reçu alors la pile sous-jacente devrait retransmettre la réponse.

Notre installation est une station de travail Linux avec MSS-tomcat (mobicents 8, tomcat 8).

Est-ce que quelqu'un a déjà rencontré ça?

Logs found here

Merci!

+1

Cela est certainement inhabituel. pourriez-vous s'il vous plaît joindre server.log? (Veuillez définir le niveau de journalisation JAINSIP et SipServlet sur DEBUG) –

+0

Merci d'avoir commenté @Jaime. Ajout des journaux au message d'origine. –

+1

Je peux voir un appel entrant avec callID: [email protected] L'invitation est rejetée avec 500 (Appel bloqué en raison d'un numéro de destination non-GNF). Est-ce le scénario que vous avez mentionné à l'origine? –

Répondre

0

Si la signalisation sip pour l'appel est sur tcp (au lieu de udp), il n'y aura pas de retransmission de la réponse d'erreur puisque la fiabilité est gérée par le transport sous-jacent. Notez cependant que ce n'est pas vrai pour 200 réponse à inviter puisque ACK pour 2xx n'est pas hop-by-hop et pourrait prendre un chemin différent dans le réseau par rapport à la réponse (certains proxys pourraient avoir utilisé udp où le 200 aurait pu être perdu).

+0

Nous travaillons en UDP, mais il ne semble pas que ce soit le problème dans ce cas - il s'avère que nous avons terminé la partie immédiatement après l'envoi du message 500 afin que mobicents n'ait pas de session avec laquelle travailler. –

0

La source du problème a été trouvée: Il s'avère qu'après l'envoi du message 500, nous avons terminé l'étape applicative. Cela a eu pour conséquence que la pile sip n'avait pas de session valide à laquelle retourner, et par conséquent, elle ne savait pas si ACK était reçu ou non. Remarque: lorsque nous travaillions avec WebSphere sip-stack, la pile ne tenait simplement pas compte de la demande de l'application de terminer la branche dans ce cas, et la retardait jusqu'à la réception d'un ACK ou l'expiration des retransmissions.