Hello,
On 02/13/2009 12:08 PM, Abdul Hakeem wrote:
Hi, Are you able to put me in touch with the guys using the SDP parser ?
direct your emails to mailing list all the time. Those people are there, the developer of SDP parser and others using it. You will get much faster response and maybe better than writing private emails.
Thanks, Daniel
Cheers, Abdul Hakeem
-----Original Message----- From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: 11 February 2009 15:20 To: alhakeem@ipextelecom.net; kamailio Subject: Re: [Kamailio-Users] SIP-T: Multipart SDPs, ISUP parsing, etc
Hello,
On 02/11/2009 03:20 PM, Abdul Hakeem wrote:
Hi,
Just wanted to touch base on the parser to find out if you are still pursuing this.
it is still on my todo list, however didn't make it in the upcoming 1.5.0. Ovidiu Sas did some commits to the SDP parser and I know couple of others using it with success.
Please open a feature request at: http://sourceforge.net/tracker/?atid=743023&group_id=139143&func=bro...
It is easier to track and not forgot about it for the next release.
Thanks, Daniel
I am in the mind of purchasing some Cisco equipment to do the Sip-MAP gateway from a GSM network. I have someone else from the OpenBTS with me on this. The object is to provide a full fledged sip based routing of voice, sms and multimedia calls from gsm handsets to BTS with a Sip server
backend.
Cheers, Abdul Hakeem
-----Original Message----- From: users-bounces@lists.kamailio.org [mailto:users-bounces@lists.kamailio.org] On Behalf Of Daniel-Constantin Mierla Sent: 03 September 2008 17:45 To: Kristian Kielhofner Cc: users@lists.kamailio.org Subject: Re: [Kamailio-Users] SIP-T: Multipart SDPs, ISUP parsing, etc
Hello,
On 09/03/08 19:10, Kristian Kielhofner wrote:
Hello everyone,
Feel free to set $OSSPROXY to whatever you like = Kamailio/OpenSIPS/OpenSER (for those of you who can't let go).
$OSSPROXY is my favorite SIP toolkit. In addition to being an excellent proxy and registrar it serves as a platform to do SIP mangling and wrangling. With that in mind let me propose a crazy idea...
How hard would it be to get $OSSPROXY to be able to parse what is commonly referred to as SIP-T (RFC 3372)? I understand $OSSPROXY has no business getting too involved in the SDP but I feel it makes sense in some instances (like this one). What if I want to make a routing decision based on an encapsulated ISUP parameter of some sort? Who knows what it could be!?!? Maybe there are some other uses but that makes the most sense and seems to be the most practical. It should be possible to develop an $OSSPROXY module to:
- Use the SDP parser to find the ISUP SDP part:
http://www.kamailio.net/dokuwiki/doku.php/development:sdp-parsing
- Pass that part into a "real" ISUP parser (if necessary). I
couldn't seem to find the perfect library but perhaps something like this could work:
http://www.openss7.org/isup.html
- Make the ISUP parameters available via AVPs, pseudo variables, etc
for use in the $OSSPROXY script.
I don't really have a need for this but it seems like it could be cool. Am I nuts?
I would expose the body as a dynamic structure, so components will be accessible in the script, e.g. (naming schema just for example),
if($body(0=>content-type)=="application/sdp") { if($body(0=>m=>type) == "audio") { } }
Based on the available content type parsers (sdp, isup), the structure has different attributes.
Cheers, Daniel
-- Daniel-Constantin Mierla http://www.asipto.com
Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
-- Daniel-Constantin Mierla http://www.asipto.com
The multipart body content parsing is embedded in the sdp parser. The sdp parser is available in the source tree under the ./parser/sdp directory.
Hope this helps, Ovidiu Sas
On Fri, Feb 13, 2009 at 8:26 AM, Daniel-Constantin Mierla miconda@gmail.com wrote:
Hello,
On 02/13/2009 12:08 PM, Abdul Hakeem wrote:
Hi, Are you able to put me in touch with the guys using the SDP parser ?
direct your emails to mailing list all the time. Those people are there, the developer of SDP parser and others using it. You will get much faster response and maybe better than writing private emails.
Thanks, Daniel
Cheers, Abdul Hakeem
-----Original Message----- From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: 11 February 2009 15:20 To: alhakeem@ipextelecom.net; kamailio Subject: Re: [Kamailio-Users] SIP-T: Multipart SDPs, ISUP parsing, etc
Hello,
On 02/11/2009 03:20 PM, Abdul Hakeem wrote:
Hi,
Just wanted to touch base on the parser to find out if you are still pursuing this.
it is still on my todo list, however didn't make it in the upcoming 1.5.0. Ovidiu Sas did some commits to the SDP parser and I know couple of others using it with success.
Please open a feature request at: http://sourceforge.net/tracker/?atid=743023&group_id=139143&func=bro...
It is easier to track and not forgot about it for the next release.
Thanks, Daniel
I am in the mind of purchasing some Cisco equipment to do the Sip-MAP gateway from a GSM network. I have someone else from the OpenBTS with me on this. The object is to provide a full fledged sip based routing of voice, sms and multimedia calls from gsm handsets to BTS with a Sip server
backend.
Cheers, Abdul Hakeem
-----Original Message----- From: users-bounces@lists.kamailio.org [mailto:users-bounces@lists.kamailio.org] On Behalf Of Daniel-Constantin Mierla Sent: 03 September 2008 17:45 To: Kristian Kielhofner Cc: users@lists.kamailio.org Subject: Re: [Kamailio-Users] SIP-T: Multipart SDPs, ISUP parsing, etc
Hello,
On 09/03/08 19:10, Kristian Kielhofner wrote:
Hello everyone,
Feel free to set $OSSPROXY to whatever you like = Kamailio/OpenSIPS/OpenSER (for those of you who can't let go).
$OSSPROXY is my favorite SIP toolkit. In addition to being an excellent proxy and registrar it serves as a platform to do SIP mangling and wrangling. With that in mind let me propose a crazy idea...
How hard would it be to get $OSSPROXY to be able to parse what is commonly referred to as SIP-T (RFC 3372)? I understand $OSSPROXY has no business getting too involved in the SDP but I feel it makes sense in some instances (like this one). What if I want to make a routing decision based on an encapsulated ISUP parameter of some sort? Who knows what it could be!?!? Maybe there are some other uses but that makes the most sense and seems to be the most practical. It should be possible to develop an $OSSPROXY module to:
- Use the SDP parser to find the ISUP SDP part:
http://www.kamailio.net/dokuwiki/doku.php/development:sdp-parsing
- Pass that part into a "real" ISUP parser (if necessary). I
couldn't seem to find the perfect library but perhaps something like this could work:
http://www.openss7.org/isup.html
- Make the ISUP parameters available via AVPs, pseudo variables, etc
for use in the $OSSPROXY script.
I don't really have a need for this but it seems like it could be cool. Am I nuts?
I would expose the body as a dynamic structure, so components will be accessible in the script, e.g. (naming schema just for example),
if($body(0=>content-type)=="application/sdp") { if($body(0=>m=>type) == "audio") { } }
Based on the available content type parsers (sdp, isup), the structure has different attributes.
Cheers, Daniel
-- Daniel-Constantin Mierla http://www.asipto.com
Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
-- Daniel-Constantin Mierla http://www.asipto.com
-- Daniel-Constantin Mierla http://www.asipto.com
Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
On Friday 13 February 2009, Ovidiu Sas wrote:
The multipart body content parsing is embedded in the sdp parser. The sdp parser is available in the source tree under the ./parser/sdp directory.
There is also some documentation about the parser on our wiki:
http://www.kamailio.org/dokuwiki/doku.php/development:sdp-parsing
Cheers,
Henning
Hi list,
I need some explanation about using Kamailio as a Call Stateful Proxy.
I understand that Kamailio is a transaction stateful proxy. And I would like to learn how I can achieve a Call Stateful Proxy using Kamailio.
I'm going to use Asterisk for transcoding to receive and send calls to the users and Kamailio should do the routing process using carrierroute, deciding to which carrier the calls should be sent to.
Customer Carrier1 Group1 \ / \ / \ / Customer ---->GW ---> Kamailio ---> GW ---> Carrier2 Group2 Asterisk Asterisk / \ / \ Customer / Carrier3 Group3
Now it works with x-lite, if customer1 calls to certain number the call is send to the correspondent carrier base on the prefix number. But when I add the GWs, how I can send the call to the GW IP address (Asterisk) and then forward to the IP address of the carrier that I assigned for that prefix number in my carrierroute table.
Can any of you could help me to clarify this or guide me about what to read, so I could implement this.
Thanks in advance,
Juan.-
Kamailio is not, in fact, a call-stateful proxy, although for certain applications the 'dialog' module can help confer the illusion that it is.
-- Sent from mobile device
On Feb 16, 2009, at 7:54 AM, "Juan Asencio" juan@asencio.dk wrote:
Hi list,
I need some explanation about using Kamailio as a Call Stateful Proxy.
I understand that Kamailio is a transaction stateful proxy. And I would like to learn how I can achieve a Call Stateful Proxy using Kamailio.
I'm going to use Asterisk for transcoding to receive and send calls to the users and Kamailio should do the routing process using carrierroute, deciding to which carrier the calls should be sent to.
Customer Carrier1 Group1 \ / \ / \ / Customer ---->GW ---> Kamailio ---> GW ---> Carrier2 Group2 Asterisk Asterisk / \ / \ Customer / Carrier3 Group3
Now it works with x-lite, if customer1 calls to certain number the call is send to the correspondent carrier base on the prefix number. But when I add the GWs, how I can send the call to the GW IP address (Asterisk) and then forward to the IP address of the carrier that I assigned for that prefix number in my carrierroute table.
Can any of you could help me to clarify this or guide me about what to read, so I could implement this.
Thanks in advance,
Juan.-
Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
Hello,
your issue has nothing to do with a call stateful server.
You simply do record route in your config so for within dialog requests the routing is don properly.
For initial invite, I assume (as I never used it) carrierroute sets the R-URI so you just use:
t_relay("udp:asteriskip:asteriskport");
and in asterisk you dial the address in the r-uri.
If carrierroute is setting the dst_uri, then add it as special header, use same to forward to asterisk, but there use the special header to dial out.
Cheers, Daniel
On 02/16/2009 02:54 PM, Juan Asencio wrote:
Hi list,
I need some explanation about using Kamailio as a Call Stateful Proxy.
I understand that Kamailio is a transaction stateful proxy. And I would like to learn how I can achieve a Call Stateful Proxy using Kamailio.
I'm going to use Asterisk for transcoding to receive and send calls to the users and Kamailio should do the routing process using carrierroute, deciding to which carrier the calls should be sent to.
Customer Carrier1 Group1 \ / \ / \ / Customer ---->GW ---> Kamailio ---> GW ---> Carrier2 Group2 Asterisk Asterisk / \ / \ Customer / Carrier3 Group3
Now it works with x-lite, if customer1 calls to certain number the call is send to the correspondent carrier base on the prefix number. But when I add the GWs, how I can send the call to the GW IP address (Asterisk) and then forward to the IP address of the carrier that I assigned for that prefix number in my carrierroute table.
Can any of you could help me to clarify this or guide me about what to read, so I could implement this.
Thanks in advance,
Juan.-
Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
On Monday 16 February 2009, Daniel-Constantin Mierla wrote:
Hello,
your issue has nothing to do with a call stateful server.
You simply do record route in your config so for within dialog requests the routing is don properly.
For initial invite, I assume (as I never used it) carrierroute sets the R-URI so you just use:
Hi Daniel,
cr rewrites the request URI.
Cheers,
Henning
Hello Daniel and Henning, thank you for your help.
I add the t_relay(...) and now the call is sent to the gateway. But I'm getting some errors.
I will appreciate your advice:
I'm using it to route calls base on the prefix number. This seems to work some how (with some errors) and I'm not satisfy with the results that I'm getting.
I would expect that on the second invite, when it sends from Kamailio to the Gateway it would change to the host that the carrierroute assigned, something like 456789@host5.dk-ws.
You can see some more info in the following lines.
I'm calling from a X-lite softphone to the number 456789, carrierroute reads the prefix and base on the carrierroute db table assigns the host that the call should be route to. In this case is host5.dk-ws
When I check # cat /var/log/messages I get the following errors and I can't figure it out what they are:
Feb 18 12:38:59 localhost /sbin/kamailio[14687]: INFO:carrierroute:cr_do_route: uri 456789 was rewritten to sip:456789@host5.dk-ws Feb 18 12:38:59 localhost /sbin/kamailio[14687]: ERROR:tm:t_forward_nonack: no branch for forwarding Feb 18 12:38:59 localhost /sbin/kamailio[14687]: ERROR:tm:w_t_relay: t_forward_nonack failed Feb 18 12:39:24 localhost kernel: device eth0 left promiscuous mode Feb 18 12:39:28 localhost /sbin/kamailio[14695]: CRITICAL:tm:t_should_relay_response: pick_branch failed (lowest==-1) for code 408 [root@localhost kamailio]#
Also, if I do a # ngrep 456789 -qt interface: eth0 (192.168.50.0/255.255.255.0) match: 456789
U 2009/02/18 12:40:51.606688 192.168.50.118:8236 -> 192.168.50.93:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.611241 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 100 Giving a try..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.612321 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
U 2009/02/18 12:40:51.617089 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 500 Server error occurred (19/SL)..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.623317 192.168.50.118:8236 -> 192.168.50.93:5060 ACK sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:52.031349 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
U 2009/02/18 12:40:53.031163 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
And keeps sending invites...
I would expect that on the second invite, when it sends from 192.168.50.93 to 192.168.50.114 it would change to the host that the carrierroute assigned, something like 456789@host5.dk-ws.
My question is if it should change it or is doing what it suppose to do?
All the ip addresses where I'm sending the traffic are fake, so it is not a gateway to respond the call. Is that what is causing the errors and why is not passing the call with the host address that cr assigned?
Cheers,
Juan.-
Hello,
your issue has nothing to do with a call stateful server.
You simply do record route in your config so for within dialog requests the routing is don properly.
For initial invite, I assume (as I never used it) carrierroute sets the R-URI so you just use:
t_relay("udp:asteriskip:asteriskport");
and in asterisk you dial the address in the r-uri.
If carrierroute is setting the dst_uri, then add it as special header, use same to forward to asterisk, but there use the special header to dial out.
Cheers, Daniel
On 02/16/2009 02:54 PM, Juan Asencio wrote:
Hi list,
I need some explanation about using Kamailio as a Call Stateful Proxy.
I understand that Kamailio is a transaction stateful proxy. And I would like to learn how I can achieve a Call Stateful Proxy using Kamailio.
I'm going to use Asterisk for transcoding to receive and send calls to the users and Kamailio should do the routing process using carrierroute, deciding to which carrier the calls should be sent to.
Customer Carrier1 Group1 \ / \ / \ / Customer ---->GW ---> Kamailio ---> GW ---> Carrier2 Group2 Asterisk Asterisk / \ / \ Customer / Carrier3 Group3
Now it works with x-lite, if customer1 calls to certain number the call is send to the correspondent carrier base on the prefix number. But when I add the GWs, how I can send the call to the GW IP address (Asterisk) and then forward to the IP address of the carrier that I assigned for that prefix number in my carrierroute table.
Can any of you could help me to clarify this or guide me about what to read, so I could implement this.
Thanks in advance,
Juan.-
Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
-- Daniel-Constantin Mierla http://www.asipto.com
On Wednesday 18 February 2009, Juan Asencio wrote:
I add the t_relay(...) and now the call is sent to the gateway. But I'm getting some errors.
I will appreciate your advice:
I'm using it to route calls base on the prefix number. This seems to work some how (with some errors) and I'm not satisfy with the results that I'm getting.
I would expect that on the second invite, when it sends from Kamailio to the Gateway it would change to the host that the carrierroute assigned, something like 456789@host5.dk-ws.
You can see some more info in the following lines.
I'm calling from a X-lite softphone to the number 456789, carrierroute reads the prefix and base on the carrierroute db table assigns the host that the call should be route to. In this case is host5.dk-ws
When I check # cat /var/log/messages I get the following errors and I can't figure it out what they are:
Feb 18 12:38:59 localhost /sbin/kamailio[14687]: INFO:carrierroute:cr_do_route: uri 456789 was rewritten to sip:456789@host5.dk-ws Feb 18 12:38:59 localhost /sbin/kamailio[14687]: ERROR:tm:t_forward_nonack: no branch for forwarding Feb 18 12:38:59 localhost /sbin/kamailio[14687]: ERROR:tm:w_t_relay: t_forward_nonack failed Feb 18 12:39:24 localhost kernel: device eth0 left promiscuous mode Feb 18 12:39:28 localhost /sbin/kamailio[14695]: CRITICAL:tm:t_should_relay_response: pick_branch failed (lowest==-1) for code 408 [root@localhost kamailio]#
Hi Juan,
it seems that it can't forward the message, and then it gets a 408.
Also, if I do a # ngrep 456789 -qt interface: eth0 (192.168.50.0/255.255.255.0) match: 456789
U 2009/02/18 12:40:51.606688 192.168.50.118:8236 -> 192.168.50.93:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.611241 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 100 Giving a try..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.612321 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
U 2009/02/18 12:40:51.617089 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 500 Server error occurred (19/SL)..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.623317 192.168.50.118:8236 -> 192.168.50.93:5060 ACK sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:52.031349 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
U 2009/02/18 12:40:53.031163 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
And keeps sending invites...
I would expect that on the second invite, when it sends from 192.168.50.93 to 192.168.50.114 it would change to the host that the carrierroute assigned, something like 456789@host5.dk-ws.
My question is if it should change it or is doing what it suppose to do?
All the ip addresses where I'm sending the traffic are fake, so it is not a gateway to respond the call. Is that what is causing the errors and why is not passing the call with the host address that cr assigned?
yes, this is probably the problem. Kamailio needs to lookup the DNS names for relaying the message to the appropriate target. If this fails, it can't forward the message. You can use IP addresses in the cr table for testing, though.
Cheers,
Henning
Thanks Henning,
Carrierroute is assigning the correct host address. So I guess that works, but I'm worried about the invite, that is send with ip address of the kamailio, instead of the one assigned by carrierroute.
Do you think the address would change if it could find host address assigned by cr?
Cheers,
Juan.-
On Wednesday 18 February 2009, Juan Asencio wrote:
I add the t_relay(...) and now the call is sent to the gateway. But I'm getting some errors.
I will appreciate your advice:
I'm using it to route calls base on the prefix number. This seems to work some how (with some errors) and I'm not satisfy with the results that I'm getting.
I would expect that on the second invite, when it sends from Kamailio to the Gateway it would change to the host that the carrierroute assigned, something like 456789@host5.dk-ws.
You can see some more info in the following lines.
I'm calling from a X-lite softphone to the number 456789, carrierroute reads the prefix and base on the carrierroute db table assigns the host that the call should be route to. In this case is host5.dk-ws
When I check # cat /var/log/messages I get the following errors and I can't figure it out what they are:
Feb 18 12:38:59 localhost /sbin/kamailio[14687]: INFO:carrierroute:cr_do_route: uri 456789 was rewritten to sip:456789@host5.dk-ws Feb 18 12:38:59 localhost /sbin/kamailio[14687]: ERROR:tm:t_forward_nonack: no branch for forwarding Feb 18 12:38:59 localhost /sbin/kamailio[14687]: ERROR:tm:w_t_relay: t_forward_nonack failed Feb 18 12:39:24 localhost kernel: device eth0 left promiscuous mode Feb 18 12:39:28 localhost /sbin/kamailio[14695]: CRITICAL:tm:t_should_relay_response: pick_branch failed (lowest==-1) for code 408 [root@localhost kamailio]#
Hi Juan,
it seems that it can't forward the message, and then it gets a 408.
Also, if I do a # ngrep 456789 -qt interface: eth0 (192.168.50.0/255.255.255.0) match: 456789
U 2009/02/18 12:40:51.606688 192.168.50.118:8236 -> 192.168.50.93:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.611241 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 100 Giving a try..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.612321 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
U 2009/02/18 12:40:51.617089 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 500 Server error occurred (19/SL)..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.623317 192.168.50.118:8236 -> 192.168.50.93:5060 ACK sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:52.031349 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
U 2009/02/18 12:40:53.031163 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route: sip:192.168.50.93;lr=on..Via: SIP/2.0/UDP 192.168.50.93;
And keeps sending invites...
I would expect that on the second invite, when it sends from 192.168.50.93 to 192.168.50.114 it would change to the host that the carrierroute assigned, something like 456789@host5.dk-ws.
My question is if it should change it or is doing what it suppose to do?
All the ip addresses where I'm sending the traffic are fake, so it is not a gateway to respond the call. Is that what is causing the errors and why is not passing the call with the host address that cr assigned?
yes, this is probably the problem. Kamailio needs to lookup the DNS names for relaying the message to the appropriate target. If this fails, it can't forward the message. You can use IP addresses in the cr table for testing, though.
Cheers,
Henning
On Wednesday 18 February 2009, Juan Asencio wrote:
Carrierroute is assigning the correct host address. So I guess that works, but I'm worried about the invite, that is send with ip address of the kamailio, instead of the one assigned by carrierroute.
Do you think the address would change if it could find host address assigned by cr?
Hi Juan,
U 2009/02/18 12:40:51.606688 192.168.50.118:8236 -> 192.168.50.93:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.611241 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 100 Giving a try..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.612321 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route:
.118 is the address of your test box, .114 the kamailio and .93 the gateway? Yes, cr should rewrite the request uri to the one in its table. I just tested with a non existing host name on my system (test.box):
Feb 18 13:26:30 ca ../kamailio[2430]: INFO:carrierroute:cr_do_route: uri 49721123456787 was rewritten to sip:49721123456787@test.box:7000, carrier 0, domain 10 Feb 18 13:26:30 ca ../kamailio[2430]: CRITICAL:core:mk_proxy: could not resolve hostname: "test.box" Feb 18 13:26:30 ca ../kamailio[2430]: ERROR:tm:uri2proxy: bad host name in URI sip:49721123456787@test.box:7000 Feb 18 13:26:30 ca ../kamailio[2430]: ERROR:tm:t_forward_nonack: failure to add branches
Cheers,
Henning
Hi Henning, you are right those are the right addresses.
If I compare with your message, so cr rewrites the uri.
It is when I do a ngrep that it keeps using the kamailio ip address.
I will try to send it to a working gateway and see what happens.
:) thanks for your help.
Juan.-
Feb 18 12:40:51 localhost /sbin/kamailio[14765]: INFO:carrierroute:cr_do_route: uri 456789 was rewritten to sip:456789@host5.dk-ws Feb 18 12:40:51 localhost /sbin/kamailio[14765]: ERROR:tm:t_forward_nonack: no branch for forwarding Feb 18 12:40:51 localhost /sbin/kamailio[14765]: ERROR:tm:w_t_relay: t_forward_nonack failed Feb 18 12:41:20 localhost /sbin/kamailio[14769]: CRITICAL:tm:t_should_relay_response: pick_branch failed (lowest==-1) for code 408
On Wednesday 18 February 2009, Juan Asencio wrote:
Carrierroute is assigning the correct host address. So I guess that works, but I'm worried about the invite, that is send with ip address of the kamailio, instead of the one assigned by carrierroute.
Do you think the address would change if it could find host address assigned by cr?
Hi Juan,
U 2009/02/18 12:40:51.606688 192.168.50.118:8236 -> 192.168.50.93:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.611241 192.168.50.93:5060 -> 192.168.50.118:8236 SIP/2.0 100 Giving a try..Via: SIP/2.0/UDP 192.168.50.118:8236;
U 2009/02/18 12:40:51.612321 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0..Record-Route:
.118 is the address of your test box, .114 the kamailio and .93 the gateway? Yes, cr should rewrite the request uri to the one in its table. I just tested with a non existing host name on my system (test.box):
Feb 18 13:26:30 ca ../kamailio[2430]: INFO:carrierroute:cr_do_route: uri 49721123456787 was rewritten to sip:49721123456787@test.box:7000, carrier 0, domain 10 Feb 18 13:26:30 ca ../kamailio[2430]: CRITICAL:core:mk_proxy: could not resolve hostname: "test.box" Feb 18 13:26:30 ca ../kamailio[2430]: ERROR:tm:uri2proxy: bad host name in URI sip:49721123456787@test.box:7000 Feb 18 13:26:30 ca ../kamailio[2430]: ERROR:tm:t_forward_nonack: failure to add branches
Cheers,
Henning
Hi Daniel,
I tried to add the new uri from carrierroute as a special header.
But I can't figure it out how to do it. Do you have an example or can you point me where I could find the information about it?
Now I forward the invite to the gateway IP address, but I'm not sure if the new assigned uri by cr is on the header. How can I see that?
The address 50.118 is my x-lite, 50.93 is Kamailio and 50.114 is my gateway
U 192.168.50.118:60560 -> 192.168.50.93:5060 INVITE sip:456789@192.168.50.93 SIP/2.0. Via: SIP/2.0/UDP 192.168.50.118:60560;branch=z9hG4bK-d8754z-0924d953ee50f428-1---d8754z-;rport. Max-Forwards: 70. Contact: sip:1002@192.168.50.118:60560. To: "456789"sip:456789@192.168.50.93. From: "1002"sip:1002@192.168.50.93;tag=2a692168.
U 192.168.50.93:5060 -> 192.168.50.118:60560 SIP/2.0 100 Giving a try. Via: SIP/2.0/UDP 192.168.50.118:60560;branch=z9hG4bK-d8754z-0924d953ee50f428-1---d8754z-;rport=60560. To: "456789"sip:456789@192.168.50.93. From: "1002"sip:1002@192.168.50.93;tag=2a692168.
U 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0. Via: SIP/2.0/UDP 192.168.50.93;branch=z9hG4bK81cd.0e7f7944.0. Via: SIP/2.0/UDP 192.168.50.118:60560;branch=z9hG4bK-d8754z-0924d953ee50f428-1---d8754z-;rport=60560. Max-Forwards: 69. Contact: sip:1002@192.168.50.118:60560. To: "456789"sip:456789@192.168.50.93. From: "1002"sip:1002@192.168.50.93;tag=2a692168.
This is my log:
Feb 20 14:47:57 localhost /sbin/kamailio[18371]: time [Fri Feb 20 14:47:57 2009] method (INVITE) r-uri (sip:456789@192.168.50.93) 2nd via (<null>) Feb 20 14:47:57 localhost /sbin/kamailio[18371]: INFO:carrierroute:cr_do_route: uri 456789 was rewritten to sip:456789@host5.dk-ws Feb 20 14:47:57 localhost /sbin/kamailio[18371]: ERROR:tm:t_forward_nonack: no branch for forwarding Feb 20 14:47:57 localhost /sbin/kamailio[18371]: ERROR:tm:w_t_relay: t_forward_nonack failed Feb 20 14:47:57 localhost /sbin/kamailio[18371]: time [Fri Feb 20 14:47:57 2009] method (INVITE) r-uri (sip:456789@host5.dk-ws) 2nd via (<null>) Feb 20 14:48:27 localhost /sbin/kamailio[18377]: CRITICAL:tm:t_should_relay_response: pick_branch failed (lowest==-1) for code 408
Cheers,
Juan.-
Hello,
your issue has nothing to do with a call stateful server.
You simply do record route in your config so for within dialog requests the routing is don properly.
For initial invite, I assume (as I never used it) carrierroute sets the R-URI so you just use:
t_relay("udp:asteriskip:asteriskport");
and in asterisk you dial the address in the r-uri.
If carrierroute is setting the dst_uri, then add it as special header, use same to forward to asterisk, but there use the special header to dial out.
Cheers, Daniel
Hello,
On 02/20/2009 03:18 PM, Juan Asencio wrote:
Hi Daniel,
I tried to add the new uri from carrierroute as a special header.
But I can't figure it out how to do it. Do you have an example or can you point me where I could find the information about it?
append_hf("My-Hdr: $ru\n");
Cheers, Daniel
Now I forward the invite to the gateway IP address, but I'm not sure if the new assigned uri by cr is on the header. How can I see that?
The address 50.118 is my x-lite, 50.93 is Kamailio and 50.114 is my gateway
U 192.168.50.118:60560 -> 192.168.50.93:5060 INVITE sip:456789@192.168.50.93 SIP/2.0. Via: SIP/2.0/UDP 192.168.50.118:60560;branch=z9hG4bK-d8754z-0924d953ee50f428-1---d8754z-;rport. Max-Forwards: 70. Contact: sip:1002@192.168.50.118:60560. To: "456789"sip:456789@192.168.50.93. From: "1002"sip:1002@192.168.50.93;tag=2a692168.
U 192.168.50.93:5060 -> 192.168.50.118:60560 SIP/2.0 100 Giving a try. Via: SIP/2.0/UDP 192.168.50.118:60560;branch=z9hG4bK-d8754z-0924d953ee50f428-1---d8754z-;rport=60560. To: "456789"sip:456789@192.168.50.93. From: "1002"sip:1002@192.168.50.93;tag=2a692168.
U 192.168.50.93:5060 -> 192.158.50.114:5060 INVITE sip:456789@192.168.50.93 SIP/2.0. Via: SIP/2.0/UDP 192.168.50.93;branch=z9hG4bK81cd.0e7f7944.0. Via: SIP/2.0/UDP 192.168.50.118:60560;branch=z9hG4bK-d8754z-0924d953ee50f428-1---d8754z-;rport=60560. Max-Forwards: 69. Contact: sip:1002@192.168.50.118:60560. To: "456789"sip:456789@192.168.50.93. From: "1002"sip:1002@192.168.50.93;tag=2a692168.
This is my log:
Feb 20 14:47:57 localhost /sbin/kamailio[18371]: time [Fri Feb 20 14:47:57 2009] method (INVITE) r-uri (sip:456789@192.168.50.93) 2nd via (<null>) Feb 20 14:47:57 localhost /sbin/kamailio[18371]: INFO:carrierroute:cr_do_route: uri 456789 was rewritten to sip:456789@host5.dk-ws Feb 20 14:47:57 localhost /sbin/kamailio[18371]: ERROR:tm:t_forward_nonack: no branch for forwarding Feb 20 14:47:57 localhost /sbin/kamailio[18371]: ERROR:tm:w_t_relay: t_forward_nonack failed Feb 20 14:47:57 localhost /sbin/kamailio[18371]: time [Fri Feb 20 14:47:57 2009] method (INVITE) r-uri (sip:456789@host5.dk-ws) 2nd via (<null>) Feb 20 14:48:27 localhost /sbin/kamailio[18377]: CRITICAL:tm:t_should_relay_response: pick_branch failed (lowest==-1) for code 408
Cheers,
Juan.-
Hello,
your issue has nothing to do with a call stateful server.
You simply do record route in your config so for within dialog requests the routing is don properly.
For initial invite, I assume (as I never used it) carrierroute sets the R-URI so you just use:
t_relay("udp:asteriskip:asteriskport");
and in asterisk you dial the address in the r-uri.
If carrierroute is setting the dst_uri, then add it as special header, use same to forward to asterisk, but there use the special header to dial out.
Cheers, Daniel
Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users