cedric.bonnet at orange-ftgroup.com
2009-Mar-23 10:57 UTC
[asterisk-users] Issue with no change of SIP call ID
Good afternoon everybody. I first would like you to excuse me for my english. I have an issue with a SIP call ID which is not changed in the call configuration described bellow : I have an Asterisk Server A using only SIP protocol. Behind A there are 2 distant clients (using softphone X-lite) C1 and C2 and a proxy server OpenSIPS (ex OpenSER) P. The idea is that when C1 want to call C2, C1 send messages to A which first send messages to P which sends back messages to A before sending them to C2. Here are the configuration files I set : ------- sip.conf ------- [general] directrtpsetup=no canreinvite=no bindport=5060 bindaddr=192.168.255.40 tcpenable=no useragent=OSBC sdpsession=OSBC sdpowner=OSBC register => cedric1:test at 192.168.255.42/cedric1 register => cedric2:test at 192.168.255.42/cedric2 [client](!) type=friend host=dynamic context=outgoing [proxy] type=friend host=192.168.255.42 context=incoming qualify=yes allow=all [cedric1](client) [cedric2](client) ------------------------------- Where 192.168.255.42 is the IP address of P and 192.168.255.40 is the IP address of A ------- entensions.conf ------- [globals] [general] [outgoing] exten => _[a-zA-Z0-9].,1,Verbose(Outgoing ${EXTEN} - ${CALLERID(all)} - ${CALLINGPRES} - ${CHANNEL} - ${CONTEXT} - ${SIPDOMAIN} - ${SIPCALLID}) exten => _[a-zA-Z0-9].,n,Dial(SIP/proxy/${EXTEN}) exten => _[a-zA-Z0-9].,n,Hangup() [incoming] exten => _[a-zA-Z0-9].,1,Verbose(Incoming ${EXTEN}) exten => _[a-zA-Z0-9].,n,Dial(SIP/${EXTEN},15) exten => _[a-zA-Z0-9].,n,Hangup() ------------------------------- I performed lots of tests and I give you the most important results : If C2 is registering to P instead of A, calls works in both ways (C1 -> A -> P -> C2 and C2 -> P -> A -> C1) If C2 is registering to A, here is my problem. I detail you what is exactly performed by A (thanks to tshark and wireshark) : C1 sends the invite to Asterisk with a call id "cid-1". A acts as a B2BUA and initiates an other connexion with P : it send an invite to P with a call-ID "cid-2". P knows that C2 is behind A, so it forwards the invite back to A with "cid-2". Here is the problem : when A received this invite message, it only forwards the message to C2 with the same call-id "cid2" instead of acts as a B2BUA and change call-id. As a consequence : C2 answers with a 180 response and "cid-2" to A which answers to C1 (with "cid-1") and never forwards these responses and all other messages to P. As P doesn't see response messages, it sends invites messages to C2 again and again which rings again and again. I wish you understood me and could help me to solve this problem. Best regards C?dric. -- C?dric Bonnet /FT/RO/DPS/CTR/CPM/VASF Tel. +33 (0) 1 55 88 36 60 cedric.bonnet at orange-ftgroup.com ********************************* This message and any attachments (the "message") are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. Messages are susceptible to alteration. France Telecom Group shall not be liable for the message if altered, changed or falsified. If you are not the intended addressee of this message, please cancel it immediately and inform the sender. ********************************