[Freeswitch-users] freeswitch as SBC and kamailio - no route
Hristo Benev
foxb at abv.bg
Fri Aug 28 09:42:28 PDT 2009
Hello Rod,
I did the change.
Here is extract of console:
-----------------------------------------------------------------------------------------
variable_continue_on_fail: [true]
variable_sip_h_X-ROUTE: [LOOKUP]
variable_export_vars: [sip_h_X-ROUTE]
variable_signal_bond: [a66d089a-93ee-11de-ab7a-094dff0ede20]
variable_sip_redirect_contact_0: [sip:France at PEER_01]
variable_sip_redirected_to: [sip:France at PEER_01]
variable_sip_redirect_contact_user_0: [France] <-------------------------------------------
variable_sip_redirect_contact_host_0: [PEER_01]
variable_sip_redirect_dialstring_0: [sofia/internal/sip:France at PEER_01]
variable_sip_redirect_dialstring: [sofia/internal/sip:France at PEER_01]
variable_proto_specific_hangup_cause: [sip:503]
variable_sip_hangup_phrase: [DNS Error]
variable_originate_disposition: [NORMAL_TEMPORARY_FAILURE]
variable_ROUTE_GW: [France]
variable_AREA: [France]
variable_current_application: [info]
------------------------------------------------------------------------------------------
I have different value it is actually the description field as shown here:
--------------------------------
/opt/kamailio/sbin/kamctl cr show
cr carrier names
+----+---------+
| id | carrier |
+----+---------+
| 1 | default |
+----+---------+
cr domain names
+----+---------+
| id | domain |
+----+---------+
| 1 | default |
+----+---------+
cr routes
+----+---------+--------+-------------+-------+------+------+-------+--------------+----------------+----------------+-------------+
| id | carrier | domain | scan_prefix | flags | mask | prob | strip | rewrite_host | rewrite_prefix | rewrite_suffix | description |
+----+---------+--------+-------------+-------+------+------+-------+--------------+----------------+----------------+-------------+
| 1 | 1 | 1 | 1000 | 0 | 0 | 1 | 0 | PEER_01 | | | France |
+----+---------+--------+-------------+-------+------+------+-------+--------------+----------------+----------------+-------------+
-----------------------------------------
And here is what I have in kamailio:
-------------------------------------------------------------------------------------
####### Routing Logic ########
# main request routing logic
route{
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
t_check_trans();
if ($rU==NULL) {
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
# LOOKUP ROUTE TABLE WHEN ASKED BY HEADER: X-ROUTE:LOOKUP
if (is_method("INVITE") && $hdr(X-ROUTE)=="LOOKUP"){
if(!cr_route("default", "default", "$rU", "$rU", "call_id","$avp(s:route_desc)")){
#xlog("ROUTING FAILED: no route found for $rU");
sl_send_reply("604", "Unable to route this call");
exit;
} else {
xlog("LOOKUP FOUND: $rd $avp(s:route_desc)");
avp_pushto("$ru/username", "$avp(s:route_desc)");
sl_send_reply("302", "$rd");
exit;
}
}
}
----------------------------------------------------------------------------------
Another question...
In that part of FreeSwitch dialplan.xml
-----------------------------------
<context name="ROUTING">
<extension name="PEER_01">
<condition field="${sip_h_X-ROUTE}" expression="PEER_01">
<action application="set" data="hangup_after_bridge=true"/>
-----------------------------------
X-ROUTE maybe should be replaced with ROUTE_GW otherwise there is no way the regex is true.
As for thanks - for sure by default they are also for the developers of both apps.
I'm new in freeSwitch and/or Kamailio for now I'm still testing and learning so it will be nice to have something working to start with.
>-------- Оригинално писмо --------
>От: rod
>Относно: Re: [Freeswitch-users] freeswitch as SBC and kamailio - no route
>До: freeswitch-users at lists.freeswitch.org
>Изпратено на: Петък, 2009, Август 28 09:54:00 EEST
>Hello,
>
>the trace seems good.
>If you check the answer from Kamailio, you'll see that Kamailio answers
>with "302 PEER_01".
>
>As Michael Collins stated before, you can get the variable containing
>"PEER_01", then this variable is stored in a custom variable.
>
>In your dialplan, may you please add:
>
>, just before the transfer line, eg:
>
>
>
>
>
>
>
>
>
>
>
>
>
>Using application Info, you'll see on the console (or CDR) the list of
>variables used for this call. You should see the content of
>"${sip_redirect_contact_user_0}" that should contain the value
>"PEER_01". Please check this and let me know.
>
>For the new configuration file, no problem for sharing. But as I wrote
>on the wiki page, I worked on this setup cause LCR module was not
>available when I start working on FS, nor I'm a good programmer to write
>a server side HTTP script (used by xml_curl) that could scale to my needs.
>
>I enhanced a bit this configuration with support for fallback routing,
>almost realtime graph (every minutes using www.cacti.net and some
>functions in FS like limit_hash) of number of concurrent calls per AREA,
>PEER...
>
>Thanks for "the good tutorial", but don't forget the dev team who did
>this great product ;-)
>
>rod.
>
>
>Hristo Benev a écrit :
>> I assume you asked for port 5062 since I do not have any traffic on 5060 (I have one IP and my internal sip port is 5090 and external 5080).
>>
>> If you need additional info I'll provide it.
>>
>> Here is trace:
>>
>> ngrep -d any -nn -i '1000' port 5062 -W byline
>> interface: any
>> filter: (ip or ip6) and ( port 5062 )
>> match: 1000
>> #
>> U 10.10.10.10:5090 -> 127.0.0.1:5062
>> INVITE sip:1000 at 127.0.0.1:5062 SIP/2.0.
>> Via: SIP/2.0/UDP 10.10.10.10:5090;rport;branch=z9hG4bKtrDyU1US5X5tj.
>> Max-Forwards: 69.
>> From: "Extension 1001" ;tag=978g69jZaFpBD.
>> To: .
>> Call-ID: 7f0eff2d-0dbf-122d-bfb0-612c8433bc7c.
>> CSeq: 119574771 INVITE.
>> Contact: .
>> User-Agent: FreeSWITCH-mod_sofia/1.0.4-exported.
>> Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE, NOTIFY, REFER, UPDATE, REGISTER, INFO, PUBLISH.
>> Supported: timer, precondition, path, replaces.
>> Allow-Events: talk, presence, dialog, call-info, sla, include-session-description, presence.winfo, message-summary, refer.
>> Content-Type: application/sdp.
>> Content-Disposition: session.
>> Content-Length: 429.
>> X-ROUTE: LOOKUP.
>> Remote-Party-ID: "Extension 1001" ;party=calling;screen=yes;privacy=off.
>> .
>> v=0.
>> o=FreeSWITCH 1251355692 1251355693 IN IP4 10.10.10.10.
>> s=FreeSWITCH.
>> c=IN IP4 10.10.10.10.
>> t=0 0.
>> m=audio 30522 RTP/AVP 0 115 107 9 8 3 101 13.
>> a=rtpmap:0 PCMU/8000.
>> a=rtpmap:115 G7221/32000.
>> a=fmtp:115 bitrate=48000.
>> a=rtpmap:107 G7221/16000.
>> a=fmtp:107 bitrate=32000.
>> a=rtpmap:9 G722/8000.
>> a=rtpmap:8 PCMA/8000.
>> a=rtpmap:3 GSM/8000.
>> a=rtpmap:101 telephone-event/8000.
>> a=fmtp:101 0-16.
>> a=rtpmap:13 CN/8000.
>> a=ptime:20.
>>
>> #
>> U 127.0.0.1:5062 -> 10.10.10.10:5090
>> SIP/2.0 302 PEER_01.
>> Via: SIP/2.0/UDP 10.10.10.10:5090;rport=5090;branch=z9hG4bKtrDyU1US5X5tj.
>> From: "Extension 1001" ;tag=978g69jZaFpBD.
>> To: ;tag=458fb4012080e656b6742c09466dabcd.31c8.
>> Call-ID: 7f0eff2d-0dbf-122d-bfb0-612c8433bc7c.
>> CSeq: 119574771 INVITE.
>> Contact: sip:France at PEER_01.
>> Server: Kamailio (1.5.2-notls (i386/linux)).
>> Content-Length: 0.
>> .
>>
>> #
>> U 10.10.10.10:5090 -> 127.0.0.1:5062
>> ACK sip:1000 at 127.0.0.1:5062 SIP/2.0.
>> Via: SIP/2.0/UDP 10.10.10.10:5090;rport;branch=z9hG4bKtrDyU1US5X5tj.
>> Max-Forwards: 69.
>> From: "Extension 1001" ;tag=978g69jZaFpBD.
>> To: ;tag=458fb4012080e656b6742c09466dabcd.31c8.
>> Call-ID: 7f0eff2d-0dbf-122d-bfb0-612c8433bc7c.
>> CSeq: 119574771 ACK.
>> Content-Length: 0.
>> .
>>
>>
>>
>>
>>
>> >-------- Оригинално писмо --------
>> >От: Hristo Benev
>> >Относно: Re: [Freeswitch-users] freeswitch as SBC and kamailio - no route
>> >До: freeswitch-users at lists.freeswitch.org
>> >Изпратено на: Четвъртък, 2009, Август 27 14:58:53 EEST
>>
>> >
>> >Bojnour,
>> >
>> >I'll send a trace ASAP.
>> >
>> >What I see is that SIP header does not get updated -> regex is not true then it does not go to the peer. (I assume that is coming from kamailio config)
>> >
>> >I'm really interested to see the updates of the project.
>> >
>> >Thank you for the good tutorial.
>> >
>> >Hristo
>> >
>> >
>> > >-------- Оригинално писмо --------
>> > >От: rod
>> > >Относно: Re: [Freeswitch-users] freeswitch as SBC and kamailio - no route
>> > >До: freeswitch-users at lists.freeswitch.org
>> > >Изпратено на: Четвъртък, 2009, Август 27 09:41:05 EEST
>> >
>> > >Hi Hristo,
>> > >
>> > >I'm the author of this setup and wiki page. I did a lot of modifications
>> > >on this setup (alternative routing if failure essentially) but don't
>> > >have too much time to update the wiki.
>> > >
>> > >May you please send me an ngrep trace when you call 1000:
>> > >
>> > >ngrep -d any -nn -i '1000' port 5060 -W byline
>> > >
>> > >I will check what's happening.
>> > >Do you have an entry for 1000 in your mysql database ?
>> > >
>> > >regards,
>> > >rod
>> > >
>> > >Hristo Benev a écrit :
>> > >>
>> > >> It seems that the problem is on kamailio configuration.
>> > >> Will ask on their list.
>> > >>
>> > >> But to test i try to connect to my asterisk server and i receive 407 proxy authentication required.
>> > >>
>> > >> I have it setup as friend in asterisk, but still ???
>> > >>
>> > >> Any ideas?
>> > >>
>> > >> Thanks,
>> > >>
>> > >>
>> > >> >-------- Оригинално писмо --------
>> > >> >От: Hristo Benev
>> > >> >Относно: Re: [Freeswitch-users] freeswitch as SBC and kamailio - no route
>> > >> >До: freeswitch-users at lists.freeswitch.org
>> > >> >Изпратено на: Сряда, 2009, Август 26 22:02:13 EEST
>> > >>
>> > >> > I think that the problem is here:
>> > >> >-------------------------
>> > >> >2009-08-26 22:56:52.725878 [INFO] mod_dialplan_xml.c:315 Processing 1001->1000 in context ROUTING
>> > >> >Dialplan: sofia/internal/1001 at 209.71.254.33 parsing [ROUTING->PEER_01] continue=false
>> > >> >Dialplan: sofia/internal/1001 at 209.71.254.33 Regex (FAIL) [PEER_01] ${sip_h_X-ROUTE}(LOOKUP) =~ /PEER_01/ break=on-false
>> > >> >2009-08-26 22:56:52.728289 [INFO] switch_core_state_machine.c:136 No Route, Aborting
>> > >> >--------------------------
>> > >> >
>> > >> >Actually Regex FAIL
>> > >> >
>> > >> >I'm not familiar, but is this stating that ${sip_h_X-ROUTE} should be PEER_01 for success?
>> > >> >Here is my default.xml:
>> > >> >----------------
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >--------------------------
>> > >> >
>> > >> >
>> > >> >
>> > >> > >-------- Оригинално писмо --------
>> > >> > >От: Brian West
>> > >> > >Относно: Re: [Freeswitch-users] freeswitch as SBC and kamailio - no route
>> > >> > >До: freeswitch-users at lists.freeswitch.org
>> > >> > >Изпратено на: Сряда, 2009, Август 26 19:47:37 EEST
>> > >> >
>> > >> > >We do not blindly follow 302's as that is a dangerous thing to do.
>> > >> >You have to process all 302's in the dialplan.
>> > >> >Set this on your sofia profile
>> > >> >You can set these variables sip_redirect_profile,
>> > >> >sip_redirect_context,
>> > >> >sip_redirect_dialplan,
>> > >> >When a redirect happens you get these variables - sip_redirect_contact_%d,
>> > >> >sip_redirected_to,
>> > >> >sip_redirect_contact_user_%d,
>> > >> >sip_redirect_contact_host_%d,
>> > >> >sip_redirect_contact_params_%d,
>> > >> >sip_redirect_dialstring_%d,
>> > >> >sip_redirect_dialstring,
>> > >> >sip_redirected_byThen its up to you to process the redirect in your dialplan, If you don't set the
>> > >> >sip_redirect_context then it'll default to redirected context and XML as the dialplan./bOn Aug 26, 2009, at 11:37 AM, Hristo Benev wrote:HelloI followed the tutorialhttp://wiki.freeswitch.org/wiki/SBC_SetupI have following problem when I dial 1000 Kamalio reports 302, but freeswitch does not routeWhere to look for problems?
>> > >> > >
>> > >> >
>> > >> >_______________________________________________
>> > >> >FreeSWITCH-users mailing list
>> > >> >FreeSWITCH-users at lists.freeswitch.org
>> > >> >http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> > >> >UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> > >> >http://www.freeswitch.org
>> > >> >
>> > >>
>> > >> _______________________________________________
>> > >> FreeSWITCH-users mailing list
>> > >> FreeSWITCH-users at lists.freeswitch.org
>> > >> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> > >> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> > >> http://www.freeswitch.org
>> > >>
>> > >
>> > >_______________________________________________
>> > >FreeSWITCH-users mailing list
>> > >FreeSWITCH-users at lists.freeswitch.org
>> > >http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> > >UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> > >http://www.freeswitch.org
>> > >
>> >
>> >_______________________________________________
>> >FreeSWITCH-users mailing list
>> >FreeSWITCH-users at lists.freeswitch.org
>> >http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> >UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> >http://www.freeswitch.org
>> >
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>
>_______________________________________________
>FreeSWITCH-users mailing list
>FreeSWITCH-users at lists.freeswitch.org
>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>http://www.freeswitch.org
>
More information about the FreeSWITCH-users
mailing list