[OpenSIPS-Users] my problems getting dialplan to work

Bradley, Todd todd.bradley at Polycom.com
Fri Jun 19 20:48:03 CEST 2009


[root at test7 ~]# opensips -V
version: opensips 1.5.1-notls (i386/linux)
flags: STATS: Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, USE_MCAST, SHM_MEM,
SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
svnrevision: unknown
@(#) $Id: main.c 5469 2009-03-18 12:43:10Z bogdan_iancu $
main.c compiled on 11:54:04 Jun 10 2009 with gcc 4.1.2
 

> -----Original Message-----
> From: users-bounces at lists.opensips.org 
> [mailto:users-bounces at lists.opensips.org] On Behalf Of 
> Bogdan-Andrei Iancu
> Sent: Thursday, June 18, 2009 6:36 PM
> To: Bradley, Todd
> Cc: users at lists.opensips.org
> Subject: Re: [OpenSIPS-Users] my problems getting dialplan to work
> 
> Hi Todd,
> 
> What version of opensips are you using ? Could you pass me 
> the output of "opensips -V" ?
> 
> Regards,
> Bogdan
> 
> Bradley, Todd wrote:
> > I'm running on GNU/Linux FC7.  I know that's pretty old, but it's 
> > updated with all the latest package updates.  I built 
> > opensips-1.5.1-tls from source.
> >
> >
> > Todd.
> >
> >
> >   
> >> -----Original Message-----
> >> From: users-bounces at lists.opensips.org 
> >> [mailto:users-bounces at lists.opensips.org] On Behalf Of 
> Bogdan-Andrei 
> >> Iancu
> >> Sent: Tuesday, June 16, 2009 11:15 AM
> >> To: Bradley, Todd
> >> Cc: users at lists.opensips.org
> >> Subject: Re: [OpenSIPS-Users] my problems getting dialplan to work
> >>
> >> Todd, this sounds like twilightzone :)...what OS are you using ?
> >>
> >> regards,
> >> Bogdan
> >>
> >> Bradley, Todd wrote:
> >>     
> >>> This is really baffling.  I updated my DB table to look
> >>>       
> >> nearly exactly
> >>     
> >>> like yours and even changed my script to look almost exactly like 
> >>> yours, and still it doesn't work.
> >>>
> >>> Here's the output that was logged:
> >>>
> >>> Jun 16 10:35:12 [27383] DBG:dialplan:dp_get_ivalue: integer
> >>>       
> >> value Jun
> >>     
> >>> 16 10:35:12 [27383] DBG:dialplan:dp_translate_f: dpid is 2 Jun 16
> >>> 10:35:12 [27383] DBG:dialplan:dp_get_svalue: searching 78 Jun 16
> >>> 10:35:12 [27383] DBG:dialplan:dp_translate_f: input is
> >>>       
> >> sip:061111 Jun
> >>     
> >>> 16 10:35:12 [27383] DBG:dialplan:translate: regex operator
> >>>       
> >> testing Jun
> >>     
> >>> 16 10:35:12 [27383] DBG:dialplan:test_match: test string 
> sip:061111 
> >>> against a pattern (sip:06.+) Jun 16 10:35:12 [27383]
> >>> DBG:dialplan:test_match: test_match:[0]
> >>> sip:061111
> >>> Jun 16 10:35:12 [27383] DBG:dialplan:test_match: test_match:[1]
> >>> sip:061111
> >>> Jun 16 10:35:12 [27383] DBG:dialplan:translate: found a
> >>>       
> >> matching rule
> >>     
> >>> 0xb615a1f0: pr 0, match_exp (sip:06.+) Jun 16 10:35:12 [27383]
> >>> DBG:dialplan:translate: the rule's attrs are 0 Jun 16
> >>>       
> >> 10:35:12 [27383]
> >>     
> >>> DBG:dialplan:translate: the copied attributes
> >>> are: 0
> >>> Jun 16 10:35:12 [27383] DBG:dialplan:test_match: test string
> >>> sip:061111 against a pattern (sip:06.+) Jun 16 10:35:12 [27383]
> >>> DBG:dialplan:test_match: test_match:[0]
> >>> sip:061111
> >>> Jun 16 10:35:12 [27383] DBG:dialplan:test_match: test_match:[1]
> >>> sip:061111
> >>> Jun 16 10:35:12 [27383] DBG:dialplan:dp_translate_f: input
> >>>       
> >> sip:061111
> >>     
> >>> with dpid 2 => output sip:061111 The variable that went in was
> >>> sip:061111 The variable that came out was sip:061111
> >>>
> >>>
> >>> And here is the relevant part of my route script:
> >>>
> >>>                 $var(x) = "sip:061111";
> >>>                 dp_translate("2", "$var(x)/$var(tmp)");
> >>>                 xlog("The variable that went in was $var(x)\n");
> >>>                 xlog("The variable that came out was 
> $var(tmp)\n");
> >>>
> >>>
> >>> And here is the data from my dialplan table:
> >>>
> >>> mysql> select * from dialplan;
> >>>
> >>>       
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >> 
> +----+------+----+----------+------------+-----------+------------+-
> >>     
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >>> -----------+-------+
> >>> | id | dpid | pr | match_op | match_exp  | match_len | 
> subst_exp  |
> >>> repl_exp       | attrs |
> >>>
> >>>       
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >> 
> +----+------+----+----------+------------+-----------+------------+-
> >>     
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >>> -----------+-------+
> >>> |  7 |    2 |  0 |        1 | (sip:06.+) |         0 | 
> (sip:06.+) |
> >>> \1 at 10.47.19.24 | 0     |
> >>>
> >>>       
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >> 
> +----+------+----+----------+------------+-----------+------------+-
> >>     
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >>> -----------+-------+
> >>> 1 row in set (0.00 sec)
> >>>
> >>>
> >>>
> >>> Any ideas?
> >>>
> >>>
> >>> Cheers,
> >>> Todd.
> >>>
> >>>
> >>>   
> >>>       
> >>>> -----Original Message-----
> >>>> From: users-bounces at lists.opensips.org 
> >>>> [mailto:users-bounces at lists.opensips.org] On Behalf Of
> >>>>         
> >> Bogdan-Andrei
> >>     
> >>>> Iancu
> >>>> Sent: Tuesday, June 16, 2009 10:14 AM
> >>>> To: Bradley, Todd
> >>>> Cc: users at lists.opensips.org
> >>>> Subject: Re: [OpenSIPS-Users] my problems getting 
> dialplan to work
> >>>>
> >>>> Hi Todd,
> >>>>
> >>>> The attr column is not user in t matching / replacement
> >>>>         
> >> process - it
> >>     
> >>>> is a simply opaque string (with no special
> >>>> meaning) that will be automatically pushed into script
> >>>>         
> >> (via some PV)
> >>     
> >>>> if the rule matches.
> >>>>
> >>>> If this still does not work for you, please post the 
> opensips log 
> >>>> (like last one).
> >>>>
> >>>> Regards,
> >>>> Bogdan
> >>>>
> >>>> Bradley, Todd wrote:
> >>>>     
> >>>>         
> >>>>> Thanks, Bogdan.  At first I definitely had my repl_exp 
> expression 
> >>>>> wrong due to the backslash being interpreted wrong.  But I
> >>>>>       
> >>>>>           
> >>>> fixed that
> >>>>     
> >>>>         
> >>>>> and I think it's right now.  Here's what I get:
> >>>>>
> >>>>> mysql> select * from dialplan;
> >>>>>
> >>>>>       
> >>>>>           
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >> 
> +----+------+----+----------+------------+-----------+------------+-
> >>     
> >>>>     
> >>>>
> >>>>         
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >>>>     
> >>>>         
> >>>>> -----------+-------+
> >>>>> | id | dpid | pr | match_op | match_exp  | match_len |
> >>>>>           
> >> subst_exp  |
> >>     
> >>>>> repl_exp       | attrs |
> >>>>>
> >>>>>       
> >>>>>           
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >> 
> +----+------+----+----------+------------+-----------+------------+-
> >>     
> >>>>     
> >>>>
> >>>>         
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >>>>     
> >>>>         
> >>>>> -----------+-------+
> >>>>> |  7 |    2 |  2 |        1 | (sip:06.+) |         0 | 
> >>>>>           
> >> (sip:06.+) |
> >>     
> >>>>> \1 at 10.47.19.24 |       |
> >>>>>
> >>>>>       
> >>>>>           
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >> 
> +----+------+----+----------+------------+-----------+------------+-
> >>     
> >>>>     
> >>>>
> >>>>         
> >> 
> +----+------+----+----------+------------+-----------+------------+--
> >>     
> >>>>     
> >>>>         
> >>>>> -----------+-------+
> >>>>> 1 row in set (0.00 sec)
> >>>>>
> >>>>>
> >>>>> The only possibly relevant difference I see is that you
> >>>>>           
> >> have a 0 in
> >>     
> >>>>> your attrs column, where I have a blank.  Otherwise, it
> >>>>>           
> >> looks like
> >>     
> >>>>> everything's fine, doesn't it?  I couldn't figure out what
> >>>>>       
> >>>>>           
> >>>> the attrs
> >>>>     
> >>>>         
> >>>>> column was for, so I didn't insert anything into it.  
> >>>>>       
> >>>>>           
> >>>> According to the
> >>>>     
> >>>>         
> >>>>> docs, it's a "General attributes string to be returned in
> >>>>>       
> >>>>>           
> >>>> case of rule
> >>>>     
> >>>>         
> >>>>> matching" and it's a string.  Could you help explain what
> >>>>>           
> >> it's for?
> >>     
> >>>>> Cheers,
> >>>>> Todd.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>   
> >>>>>       
> >>>>>           
> >>>>>> -----Original Message-----
> >>>>>> From: users-bounces at lists.opensips.org 
> >>>>>> [mailto:users-bounces at lists.opensips.org] On Behalf Of
> >>>>>>         
> >>>>>>             
> >>>> Bogdan-Andrei
> >>>>     
> >>>>         
> >>>>>> Iancu
> >>>>>> Sent: Monday, June 15, 2009 6:28 PM
> >>>>>> To: Bradley, Todd
> >>>>>> Cc: users at lists.opensips.org
> >>>>>> Subject: Re: [OpenSIPS-Users] my problems getting
> >>>>>>             
> >> dialplan to work
> >>     
> >>>>>> Hi Bradley,
> >>>>>>
> >>>>>> I re-made your case with:
> >>>>>>
> >>>>>> mysql> select * from dialplan;
> >>>>>> +----+------+----+----------+------------+-----------+--------
> >>>>>> ----+----------------+-------+
> >>>>>> | id | dpid | pr | match_op | match_exp  | match_len |
> >>>>>>             
> >> subst_exp  |
> >>     
> >>>>>> repl_exp       | attrs |
> >>>>>> +----+------+----+----------+------------+-----------+--------
> >>>>>> ----+----------------+-------+
> >>>>>> |  1 |    1 |  0 |        1 | (sip:06.+) |         0 | 
> >>>>>>         
> >>>>>>             
> >>>> (sip:06.+) |
> >>>>     
> >>>>         
> >>>>>> \1 at 10.47.19.24 | 0     |
> >>>>>> +----+------+----+----------+------------+-----------+--------
> >>>>>> ----+----------------+-------+
> >>>>>> 1 row in set (0.00 sec)
> >>>>>>
> >>>>>> and in script:
> >>>>>>
> >>>>>>     $var(x) = "sip:061111";
> >>>>>>     dp_translate("1", "$var(x)/$var(tmp)");
> >>>>>>     xlog("-------------$var(tmp)\n");
> >>>>>>
> >>>>>>
> >>>>>> The output was:
> >>>>>>
> >>>>>> Jun 16 03:22:34 [7921] DBG:dialplan:dp_get_ivalue: integer
> >>>>>>         
> >>>>>>             
> >>>> value Jun
> >>>>     
> >>>>         
> >>>>>> 16 03:22:34 [7921] DBG:dialplan:dp_translate_f:
> >>>>>> dpid is 1 Jun 16 03:22:34 [7921] DBG:dialplan:dp_get_svalue: 
> >>>>>> searching 78 Jun 16 03:22:34 [7921]
> >>>>>> DBG:dialplan:dp_translate_f: input is sip:061111 Jun 16
> >>>>>> 03:22:34 [7921] DBG:dialplan:translate: regex operator
> >>>>>>         
> >>>>>>             
> >>>> testing Jun 16
> >>>>     
> >>>>         
> >>>>>> 03:22:34 [7921] DBG:dialplan:test_match: test string 
> sip:061111 
> >>>>>> against a pattern (sip:06.+) Jun 16
> >>>>>> 03:22:34 [7921] DBG:dialplan:test_match: test_match:[0]
> >>>>>> sip:061111 Jun 16 03:22:34 [7921] DBG:dialplan:test_match: 
> >>>>>> test_match:[1] sip:061111 Jun 16 03:22:34 [7921]
> >>>>>> DBG:dialplan:translate: found a matching rule
> >>>>>> 0xb56744c0: pr 0, match_exp (sip:06.+) Jun 16 03:22:34 [7921]
> >>>>>> DBG:dialplan:test_match: test string
> >>>>>> sip:061111 against a pattern (sip:06.+) Jun 16 03:22:34 [7921]
> >>>>>> DBG:dialplan:test_match: test_match:[0] sip:061111 Jun
> >>>>>> 16 03:22:34 [7921] DBG:dialplan:test_match: test_match:[1]
> >>>>>> sip:061111 Jun 16 03:22:34 [7921]
> >>>>>> DBG:dialplan:dp_translate_f: input sip:061111 with dpid 1
> >>>>>>         
> >>>>>>             
> >>>> => output
> >>>>     
> >>>>         
> >>>>>> sip:061111 at 10.47.19.24
> >>>>>> -------------sip:061111 at 10.47.19.24
> >>>>>>
> >>>>>> Which looks pretty ok ...
> >>>>>>
> >>>>>> Maybe there is something something in the correct data 
> in DB.....
> >>>>>>
> >>>>>> Regards,
> >>>>>> Bogdan
> >>>>>>
> >>>>>>
> >>>>>> Bradley, Todd wrote:
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> Hi, I'm new to openSIPS and am trying to set it up with the
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> dialplan
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> module, but I've had a couple problems I can't figure out.
> >>>>>>>  
> >>>>>>> The first problem is related to how dp_translate is
> >>>>>>>               
> >> doing regexp
> >>     
> >>>>>>> replacements. I have code like this in my route method:
> >>>>>>>  
> >>>>>>> if (is_method("INVITE")) {
> >>>>>>> 	xlog("To user is: $tu\n");
> >>>>>>> 	xlog("ruri.user is: $ruri.user\n");
> >>>>>>> 	xlog("avp(s:dest) is: $avp(s:dest)\n");
> >>>>>>> 	dp_translate("1", "$tu/$var(tmp)");
> >>>>>>> 	xlog("The variable that came out was $var(tmp)\n");
> >>>>>>>  	setflag(1); # do accounting
> >>>>>>> }
> >>>>>>>  
> >>>>>>> And my dialplan DB table has this row for dpid 1: 
> >>>>>>> match_exp=(^06.+)
> >>>>>>> subst_exp=(^06.+)
> >>>>>>> repl_exp=\1 at 10.47.19.24
> >>>>>>>  
> >>>>>>> When I send in a SIP INVITE that is to "sip:061111", I
> >>>>>>>               
> >> expect the
> >>     
> >>>>>>> dp_translate to convert this to "sip:061111 at 10.47.19.24".
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> But I just
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> get "sip:061111" back. Here's the output:
> >>>>>>>  
> >>>>>>> To user is: sip:061111
> >>>>>>> ruri.user is: <null>
> >>>>>>> avp(s:dest) is: <null>
> >>>>>>> Jun 12 13:48:55 [29901] DBG:dialplan:dp_get_ivalue: integer
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> value Jun
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> 12 13:48:55 [29901] DBG:dialplan:dp_translate_f: dpid
> >>>>>>>               
> >> is 2 Jun 12
> >>     
> >>>>>>> 13:48:55 [29901] DBG:dialplan:dp_get_svalue: 
> searching 22 Jun 12
> >>>>>>> 13:48:55 [29901] DBG:dialplan:dp_translate_f: input is
> >>>>>>>               
> >> sip:061111
> >>     
> >>>>>>> Jun 12 13:48:55 [29901] DBG:dialplan:translate: regex
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> operator testing
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> Jun 12 13:48:55 [29901] DBG:dialplan:test_match: test string
> >>>>>>> sip:061111 against a pattern (sip:06.+) Jun 12 
> 13:48:55 [29901]
> >>>>>>> DBG:dialplan:test_match: test_match:[0]
> >>>>>>> sip:061111
> >>>>>>> Jun 12 13:48:55 [29901] DBG:dialplan:test_match: 
> test_match:[1]
> >>>>>>> sip:061111
> >>>>>>> Jun 12 13:48:55 [29901] DBG:dialplan:translate: found a
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> matching rule
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> 0xb610c1f0: pr 2, match_exp (sip:06.+) Jun 12 13:48:55 [29901]
> >>>>>>> DBG:dialplan:test_match: test string sip:061111 against
> >>>>>>>               
> >> a pattern
> >>     
> >>>>>>> (sip:06.+) Jun 12 13:48:55 [29901] DBG:dialplan:test_match: 
> >>>>>>> test_match:[0]
> >>>>>>> sip:061111
> >>>>>>> Jun 12 13:48:55 [29901] DBG:dialplan:test_match: 
> test_match:[1]
> >>>>>>> sip:061111
> >>>>>>> Jun 12 13:48:55 [29901] DBG:dialplan:dp_translate_f: input
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> sip:061111
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> with dpid 2 => output sip:061111 The variable that 
> came out was
> >>>>>>> sip:061111
> >>>>>>>  
> >>>>>>> So it looks like \1 is indeed replaced with the part that
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> matches the
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> regexp, but the rest of my replacement string (the
> >>>>>>>               
> >> "@10.47.19.24" 
> >>     
> >>>>>>> part) is ignored. Why is that? What am I doing wrong?
> >>>>>>>  
> >>>>>>> And my second question is this: Once I fix my first
> >>>>>>>               
> >> mistake, what
> >>     
> >>>>>>> should I do to make use of this? The behavior I want is
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> that when the
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> proxy gets an INVITE to 061111, it fills in the rest of
> >>>>>>>           
> >>>>>>>               
> >>>> the address
> >>>>     
> >>>>         
> >>>>>>> and then routes it along. In this case, it should pass it
> >>>>>>>           
> >>>>>>>               
> >>>> along to
> >>>>     
> >>>>         
> >>>>>>> 061111 at 10.47.19.24.
> >>>>>>>  
> >>>>>>> Here's where my newness to openSIPS is coming to light, I
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> think. When
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> I read the documentation for the dialplan module
> >>>>>>>
> >>>>>>>           
> >>>>>>>               
> >>>> 
> (http://www.opensips.org/html/docs/modules/1.5.x/dialplan.html), it
> >>>>     
> >>>>         
> >>>>>>> has an example that leads me to believe I should be able to
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> just do this:
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>>  
> >>>>>>> dp_translate("2", "$avp(s:dest)/$avp(s:dest)");
> >>>>>>>  
> >>>>>>> But $avp(s:dest) is null, as you can see from the output
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> above. What
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> SHOULD I have in my route script to do what I'm trying to do?
> >>>>>>>  
> >>>>>>>  
> >>>>>>> Thanks,
> >>>>>>> Todd. 
> >>>>>>>
> >>>>>>> ps.  I originally posted this question last week to the
> >>>>>>>       
> >>>>>>>           
> >>>>>>>               
> >>>>>> OpenSIPS web
> >>>>>>     
> >>>>>>         
> >>>>>>             
> >>>>>>> forum, but then realized that nobody really reads the
> >>>>>>>           
> >>>>>>>               
> >>>> forum and all
> >>>>     
> >>>>         
> >>>>>>> the action is over here on the users email list.  So
> >>>>>>>           
> >>>>>>>               
> >>>> sorry for the
> >>>>     
> >>>>         
> >>>>>>> sort-of duplication.
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>>           
> >>>>>>>               
> >> _______________________________________________
> >> Users mailing list
> >> Users at lists.opensips.org
> >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >>
> >>     
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.opensips.org
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> >
> >   
> 
> 
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 



More information about the Users mailing list