Dear list,
I'm running kamailio-4.2.3-3.1.x86_64 in a very simple setup: one Asterisk server behind kamailio. But I'm using dispatcher, the other servers are just down currently. :)
Different vendors route DIDs to kamailio's IP and kamailio handles the communication towards Asterisk.
Now I have a new vendor who uses MetaSwitch, and there is a problem. All calls get dropped with a BYE from the Asterisk side after 32 seconds because Asterisk never receives the ACK, because kamailio doesn't forward it, because MetaSwitch sends it as
ACK sip:number@KAMAILIO-IP
instead of
ACK sip:number@ASTERISK-IP
That means MetaSwitch ignores what we tell it in the Contact: header.
Is this MetaSwitch'es "fault" or kamailio's? All other vendors work fine without problems. Therefore I have compared an "old" vendor and the new one. Here is the result that shows the difference:
Old vendor - works:
OLDVENDOR-IP.5060 > KAMAILIO-IP.5060: INVITE sip:number@KAMAILIO-IP KAMAILIO-IP.5060 > OLDVENDOR-IP.5060: SIP/2.0 100 trying
KAMAILIO-IP.5060 > ASTERISK-IP.5060: INVITE sip:number@KAMAILIO-IP ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 100 Trying
ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > OLDVENDOR-IP.5060: SIP/2.0 200 OK
OLDVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@ASTERISK-IP:5060 KAMAILIO-IP.5060 > ASTERISK-IP.5060: ACK sip:number@ASTERISK-IP:5060
New vendor with MetaSwitch - doesn't work:
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: INVITE sip:number@KAMAILIO-IP:5060 KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 100 trying
KAMAILIO-IP.5060 > ASTERISK-IP.5060: INVITE sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 100 Trying
ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ... and so on ...
Can I do something about this or is a change on MetaSwitch'es side in order?
Thank you! Markus
It's Metaswitch's fault -- this is not 3261-compliant.
-- Alex Balashov | Principal | Evariste Systems LLC 303 Perimeter Center North, Suite 300 Atlanta, GA 30346 United States
Tel: +1-800-250-5920 (toll-free) / +1-678-954-0671 (direct) Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Sent from my BlackBerry.
Hello,
indeed, Metaswitch breaks SIP routing and the best is fixing their side, as pointed by Alex.
However, Kamailio is flexible enough to solve this issue, eventually temporarily until the peer is fixing its side.
Do you get Route header in the ACK? That would be crucial in selecting the ACK for 200ok vs negative responses.
Then, solution can be based on htable or parameters in Route or Contact headers, where to store the IP/port of the afferent Asterisk and use it for routing.
Cheers, Daniel
On 08/07/15 02:47, Markus wrote:
Dear list,
I'm running kamailio-4.2.3-3.1.x86_64 in a very simple setup: one Asterisk server behind kamailio. But I'm using dispatcher, the other servers are just down currently. :)
Different vendors route DIDs to kamailio's IP and kamailio handles the communication towards Asterisk.
Now I have a new vendor who uses MetaSwitch, and there is a problem. All calls get dropped with a BYE from the Asterisk side after 32 seconds because Asterisk never receives the ACK, because kamailio doesn't forward it, because MetaSwitch sends it as
ACK sip:number@KAMAILIO-IP
instead of
ACK sip:number@ASTERISK-IP
That means MetaSwitch ignores what we tell it in the Contact: header.
Is this MetaSwitch'es "fault" or kamailio's? All other vendors work fine without problems. Therefore I have compared an "old" vendor and the new one. Here is the result that shows the difference:
Old vendor - works:
OLDVENDOR-IP.5060 > KAMAILIO-IP.5060: INVITE sip:number@KAMAILIO-IP KAMAILIO-IP.5060 > OLDVENDOR-IP.5060: SIP/2.0 100 trying
KAMAILIO-IP.5060 > ASTERISK-IP.5060: INVITE sip:number@KAMAILIO-IP ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 100 Trying
ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > OLDVENDOR-IP.5060: SIP/2.0 200 OK
OLDVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@ASTERISK-IP:5060 KAMAILIO-IP.5060 > ASTERISK-IP.5060: ACK sip:number@ASTERISK-IP:5060
New vendor with MetaSwitch - doesn't work:
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: INVITE sip:number@KAMAILIO-IP:5060 KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 100 trying
KAMAILIO-IP.5060 > ASTERISK-IP.5060: INVITE sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 100 Trying
ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ... and so on ...
Can I do something about this or is a change on MetaSwitch'es side in order?
Thank you! Markus
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Thanks to you and Alex.
Damn, Alex knows everything about anything it seems. A jack of all trades.
Daniel, in this case it's easier for me to just skip Kamailio and have MetaSwitch call Asterisk directly. This is what I'm doing now and it works fine.
Thx for your help! Markus
Am 08.07.2015 um 10:21 schrieb Daniel-Constantin Mierla:
Hello,
indeed, Metaswitch breaks SIP routing and the best is fixing their side, as pointed by Alex.
However, Kamailio is flexible enough to solve this issue, eventually temporarily until the peer is fixing its side.
Do you get Route header in the ACK? That would be crucial in selecting the ACK for 200ok vs negative responses.
Then, solution can be based on htable or parameters in Route or Contact headers, where to store the IP/port of the afferent Asterisk and use it for routing.
Cheers, Daniel
On 08/07/15 02:47, Markus wrote:
Dear list,
I'm running kamailio-4.2.3-3.1.x86_64 in a very simple setup: one Asterisk server behind kamailio. But I'm using dispatcher, the other servers are just down currently. :)
Different vendors route DIDs to kamailio's IP and kamailio handles the communication towards Asterisk.
Now I have a new vendor who uses MetaSwitch, and there is a problem. All calls get dropped with a BYE from the Asterisk side after 32 seconds because Asterisk never receives the ACK, because kamailio doesn't forward it, because MetaSwitch sends it as
ACK sip:number@KAMAILIO-IP
instead of
ACK sip:number@ASTERISK-IP
That means MetaSwitch ignores what we tell it in the Contact: header.
Is this MetaSwitch'es "fault" or kamailio's? All other vendors work fine without problems. Therefore I have compared an "old" vendor and the new one. Here is the result that shows the difference:
Old vendor - works:
OLDVENDOR-IP.5060 > KAMAILIO-IP.5060: INVITE sip:number@KAMAILIO-IP KAMAILIO-IP.5060 > OLDVENDOR-IP.5060: SIP/2.0 100 trying
KAMAILIO-IP.5060 > ASTERISK-IP.5060: INVITE sip:number@KAMAILIO-IP ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 100 Trying
ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > OLDVENDOR-IP.5060: SIP/2.0 200 OK
OLDVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@ASTERISK-IP:5060 KAMAILIO-IP.5060 > ASTERISK-IP.5060: ACK sip:number@ASTERISK-IP:5060
New vendor with MetaSwitch - doesn't work:
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: INVITE sip:number@KAMAILIO-IP:5060 KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 100 trying
KAMAILIO-IP.5060 > ASTERISK-IP.5060: INVITE sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 100 Trying
ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ASTERISK-IP.5060 > KAMAILIO-IP.5060: SIP/2.0 200 OK KAMAILIO-IP.5060 > NEWVENDOR-IP.5060: SIP/2.0 200 OK
NEWVENDOR-IP.5060 > KAMAILIO-IP.5060: ACK sip:number@KAMAILIO-IP:5060 ... and so on ...
Can I do something about this or is a change on MetaSwitch'es side in order?
Thank you! Markus
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users