[Freeswitch-users] xml_curl dynamically register users problem

Michael Jerris mike at jerris.com
Wed Apr 22 11:03:20 PDT 2009


$${domain} (or any other preprocessor vars) will not be expanded on an  
xml_curl return.

Mike

On Apr 22, 2009, at 12:31 PM, JuanMa wrote:

> Peter Thanks for your reply:
>
> I did what you said but FS still with the same problem, cant found the
> user.
>
> This is my reply to registration request
>
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <document type="freeswitch/xml">
> 	<section name="directory">
> 		<domain name="$${domain}">
> 		<params>
> 		<param name="dial-string" value="{presence_id=${dialed_user}@$
> {dialed_domain},transfer_fallback_extension=${dialed_user}}$
> {sofia_contact(${dialed_user}@${dialed_domain})}"/>
> 		</params>	
> 			<groups>
> 		    	<group name="default">
> 					<users>
> 						<user id="5000">
> 							<params>
> 								<param name="password" value="5000"/>
> 								<param name="vm-password" value="5000"/>
> 							</params>
> 							<variables>
>       							<variable name="sip-force-contact" value="NDLB-
> connectile-dysfunction"/>
>     							<variable name="user_context" value="default"/>
>     						</variables>
> 						</user>
> 					</users>
> 				</group>
> 			</groups>
> 		</domain>
> 	</section>
> </document>
>
> I have made some changes but the result is the same, the registration
> is ok.
>
> My dial plan reply, call from user 1000 to user 5000 registered
> through xml_curl
>
> <document type="freeswitch/xml">
> 	<section name="dialplan" description="default">
> 		<context name="default">
> 			<extension name="llamando">
> 				<condition field="destination_number" expresion="^5000$">
> 					<action application="bridge" data="user/5000"/>
> 				</condition>
> 			</extension>
> 		</context>
> 	</section>
> </document>
>
> console returns:
>
> 2009-04-22 13:28:45 [NOTICE] switch_channel.c:565
> switch_channel_set_name() New Channel sofia/internal/1000 at 200.49.25.11
> [a6bb1f88-2f5a-11de-b18a-8fd11ffefe88]
> 2009-04-22 13:28:45 [INFO] mod_dialplan_xml.c:233 dialplan_hunt()
> Processing 1000->5000 in context default
> 2009-04-22 13:28:45 [ERR] switch_xml.c:1532 switch_xml_locate()
> Error[[error near line 1]: root tag missing]
> 2009-04-22 13:28:45 [WARNING] mod_dptools.c:2171
> user_outgoing_channel() Can't find user [5000 at 200.49.25.11]
> 2009-04-22 13:28:45 [ERR] switch_ivr_originate.c:1116
> switch_ivr_originate() Cannot create outgoing channel of type [user]
> cause: [SUBSCRIBER_ABSENT]
> 2009-04-22 13:28:45 [INFO] mod_dptools.c:1909 audio_bridge_function()
> Originate Failed.  Cause: SUBSCRIBER_ABSENT
> 2009-04-22 13:28:45 [NOTICE] mod_dptools.c:1936
> audio_bridge_function() Hangup sofia/internal/1000 at 200.49.25.11
> [CS_EXECUTE] [SUBSCRIBER_ABSENT]
> 2009-04-22 13:28:45 [NOTICE] switch_core_session.c:957
> switch_core_session_thread() Session 10 (sofia/internal/1000 at 200.49.25.11
> ) Ended
> 2009-04-22 13:28:45 [NOTICE] switch_core_session.c:959
> switch_core_session_thread() Close Channel sofia/internal/1000 at 200.49.25.11
>  [CS_HANGUP]
>
> Any idea what is i am doing wrong?
>
> Thanks
> Juan Manuel
>
> On Apr 20, 2009, at 8:14 PM, Peter P GMX wrote:
>
>> I had the same problem some time ago.
>>
>> Setting the
>> <param name="dial-string"
>> value="{presence_id=${dialed_user}@$
>> {dialed_domain},transfer_fallback_extension=${dialed_user}}$
>> {sofia_contact(${dialed_user}@${dialed_domain})}"/>
>>
>> in the xml-curl answer solved my problem.
>> In the config files this is set in
>>   /usr/local/freeswitch/conf/directory/default.xml
>> and you also need it in your xml-curl.
>>
>> Best regards
>> Peter
>>
>> JuanMa schrieb:
>>> Brian thx for you help.
>>>
>>> 404 was my mistake it is "user not found"
>>>
>>> 2009-04-20 12:16:24 [WARNING] mod_dptools.c:2171
>>> user_outgoing_channel() Can't find user [4000 at 200.49.25.11
>>> <mailto:4000 at 200.49.25.11>]
>>>
>>> To explain better my problem:
>>>
>>> i have two users, one 1000 and another 4000,the user 1000
>>> is physically in the user directory of Freeswitch(FS) and the user
>>> 4000 is dynamically registered througth xml_curl.
>>>
>>> The request of FS when user 4000 wants to register is:
>>>
>>> sip_to_user:4000
>>> tag_name:domain
>>> key_value:200.49.25.11
>>> sip_contact_user:4000
>>> section:directory
>>> sip_auth_method:REGISTER
>>> sip_auth_realm:200.49.25.11
>>> sip_auth_username:4000
>>> sip_user_agent:eyeBeam release 1004p stamp 31962
>>> sip_auth_cnonce:f63211853d983216
>>> sip_request_host:200.49.25.11
>>> hostname:FreeSwitch_curl_XML
>>> ip:200.123.150.217
>>> user:4000
>>> action:sip_auth
>>> sip_profile:internal
>>> key_name:name
>>> sip_auth_qop:auth
>>> sip_from_user:4000
>>> sip_to_host:200.49.25.11
>>> key:id
>>> sip_auth_nonce:8fad7fae-2db9-11de-83c7-b10c5224858b
>>> domain:200.49.25.11
>>> sip_auth_nc:00000006
>>> sip_from_host:200.49.25.11
>>> sip_auth_response:4db7a5476e949c8d133f55279d837b2f
>>> sip_auth_uri:sip:200.49.25.11
>>> sip_contact_host:200.123.150.217
>>>
>>> and the reply is:
>>>
>>> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
>>> <document type="freeswitch/xml">
>>> <section name="directory">
>>> <domain name="200.49.25.11">
>>> <user id="4000">
>>> <params>
>>> <param name"password" value="4000"/>
>>> <param name="vm-password" value="4000"/>
>>> </params>
>>> <variables>
>>>      <variable name="user_context" value="cualquiera"/>
>>>    <variable name="sip-force-contact"
>>> value="NDLB-connectile-dysfunction"/>
>>>    <variable name="user_context" value="default"/>
>>>    </variables>
>>> </user>
>>> </domain>
>>> </section>
>>> </document>
>>>
>>> and the user 4000 register without problems.
>>>
>>> I made two calls.
>>>
>>> From user 4000 to 1000
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <document type="freeswitch/xml">
>>> <section name="dialplan" description="asdasd">
>>> <context name="default">
>>> <extension name="llamando">
>>> <condition field="destination_number" expresion="^1000$">
>>> <action application="bridge" data="user/1000" />
>>> </condition>
>>> </extension>
>>> </context>
>>> </section>
>>> </document>
>>>
>>> The call is ok the two user can talk without problems.
>>>
>>> Another from user 1000 to 4000
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <document type="freeswitch/xml">
>>> <section name="dialplan" description="asdasd">
>>> <context name="default">
>>> <extension name="llamando">
>>> <condition field="destination_number" expresion="^4000$">
>>> <action application="bridge" data="user/4000" />
>>> </condition>
>>> </extension>
>>> </context>
>>> </section>
>>> </document>
>>>
>>> And get this error:
>>>
>>> 2009-04-20 12:16:24 [WARNING] mod_dptools.c:2171
>>> user_outgoing_channel() Can't find user [4000 at 200.49.25.11
>>> <mailto:4000 at 200.49.25.11>].
>>>
>>> To resolve this problem users be must defined on boot time. But i
>>> want
>>> to do it dynamically, how was explain before.
>>>
>>> Thanks
>>> Juan Manuel
>>>
>>>
>>>> On Apr 17, 2009, at 12:07 PM, JuanMa wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I am using xml_curl, and what I'm trying to do is dynamically
>>>>> register
>>>>> the users to the platform, instead of bulking all the users on
>>>>> the FS
>>>>> boot time. So far I have successfully register the users and also
>>>>> make
>>>>> calls through gateways or to static users (those users that are
>>>>> in the
>>>>> physical files), however every time that I want to reach a User  
>>>>> who
>>>>> has been registered and configured through this method, It seams
>>>>> that
>>>>> the FS could not find it (404). For what I have read in the
>>>>> mailings
>>>>> list
>>>>> (http://lists.freeswitch.org/pipermail/freeswitch-users/2009-January/009863.html
>>>>> ) I've seen that theoretically the users MUST be defined on boot
>>>>> time
>>>>> in order to be found, is this correct?
>>>>
>>>> Looks like you're confusing dialplan with user directory.
>>>>
>>>> Can you provide examples of what you're returning and what is
>>>> resulting in a 404?
>>>>
>>>>
>>>>>
>>>>> For instance if I do have 10.000 users I will be forcing the FS to
>>>>> have all of them in its database when perhaps I only have 1000
>>>>> online
>>>>> in that specific moment/switch. Perhaps this is something
>>>>> meaningless
>>>>> for the server(in terms of cost or performance), but my first
>>>>> impression is that is far from optimal.
>>>>>
>>>>> So far it seams to be a really cool approach to make the systems
>>>>> scale, how ever It's been very difficult to me to find accurate
>>>>> information and in general I've ended looking at the code, and
>>>>> make my
>>>>> own contribution to the docs.
>>>>>
>>>>> If anyone can give any tip or direction I would really appreciate.
>>>>>
>>>>>
>>>>> Thanks in advance.
>>>>> Juan Manuel
>>>>
>>>> Brian West
>>>> brian at freeswitch.org <mailto:brian at 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