[SR-Users] DBTEXT / AVPOPS and custom database
Daniel-Constantin Mierla
miconda at gmail.com
Tue Nov 12 15:36:25 CET 2013
Hello,
the name of the avp in the second parameter has to match the value in
the 'attribute' column, like:
avp_db_load("01344665544/username", "$avp(inbound)/LineIDs");
If you want to load all the records, you have to specify flags, not avp
names, in the second parameter.
Cheers,
Daniel
On 11/12/13 11:44 AM, Hugh James wrote:
>
> Hi ,
>
> I'm trying to use the db_text and avpops modules to implement a simple
> custom database but having problems getting it to work .
>
> I'm trying to find the Identity of the recipient for an inbound call
> based on the called number . I have a database file:-
>
> 1)LineIDs - contains the called numbers in the username field and
> an attribute for that line ID (inbound/ outbound) ,and the
> recipient identity in the value field
>
> I am trying to get the attribute and value pairs that matches the
> line number in the user name column ,
>
> id(int,auto) uuid(str,null) username(str) domain(str,null)
> attribute(str) type(int) value(str)
>
> 1::+12125551212::inbound:0:Foster
>
> 2::012125551212::inbound:0:Foster
>
> 3::12125551212::inbound:0:Foster
>
> 4::+4412125551212::inbound:0:Foster
>
> 5::+12125551213::inbound:0:Foster
>
> 6::012125551213::inbound:0:Foster
>
> 7::013440001::inbound:0:Foster
>
> 8::call-centre::inbound:0:MBA
>
> 9::call-centre::outbound:0:MBA
>
> 10::01344665544::inbound:0:chicken
>
> 11::01344665544::outbound:0:chicken
>
> I try to load the AVPs that match a received number using the
> following line in the kamailio script file
>
> $var(rc)=avp_db_load("01344665544/username","s:recipient/LineIDs");
>
> I have also tried
>
> $var(rc)=avp_db_load("01344665544/username","$avp(s:tenants)/LineIDs");
>
> And
>
> $var(rc)=avp_db_load("01344665544","$avp(i:123)/LineIDs");
>
> But it fails to find any matching rows ( AVPS) . Am I using the
> function correctly ?
>
> The debug output is shown below , there are some custom debug lines I
> have added in the db_text C files .
>
> DEBUG: avpops [avpops_impl.c:378]: AVPOPS: calls db_load_avp
>
> DEBUG: db_text [dbt_base.c:185]: DBTEXT: dbt_query called
>
> DEBUG: db_text [dbt_file.c:102]: request for table [LineIDs]
>
> DEBUG: db_text [dbt_file.c:109]: db is [/etc/kamailio/Tenants]
>
> DEBUG: db_text [dbt_file.c:124]: loading file
> [/etc/kamailio/Tenants/LineIDs]
>
> DEBUG: db_text [dbt_tb.c:187]: mtime is 1383910898
>
> DEBUG: db_text [dbt_file.c:215]: column[0] is INT!
>
> DEBUG: db_text [dbt_file.c:210]: column[1] is STR!
>
> DEBUG: db_text [dbt_file.c:210]: column[2] is STR!
>
> DEBUG: db_text [dbt_file.c:210]: column[3] is STR!
>
> DEBUG: db_text [dbt_file.c:210]: column[4] is STR!
>
> DEBUG: db_text [dbt_file.c:215]: column[5] is INT!
>
> DEBUG: db_text [dbt_file.c:210]: column[6] is STR!
>
> DEBUG: db_text [dbt_base.c:240]: new res with 3 cols
>
> DEBUG: db_text [dbt_res.c:52]: DBTEXT: dbt_result_new called
>
> DEBUG: db_text [dbt_res.c:79]: new res with 3 cols
>
> DEBUG: db_text [dbt_res.c:100]: DBTEXT: dbt_result_new returns
>
> DEBUG: db_text [dbt_api.c:255]: DBTEXT: dbt_get_result called
>
> DEBUG: <core> [db_res.c:118]: allocate 48 bytes for result set at
> 0x7f334a85c390
>
> DEBUG: <core> [db_res.c:155]: allocate 24 bytes for result names at
> 0x7f334a85c3e0
>
> DEBUG: <core> [db_res.c:165]: allocate 12 bytes for result types at
> 0x7f334a85c1f0
>
> DEBUG: db_text [dbt_api.c:80]: allocate 16 bytes for RES_NAMES[0] at
> 0x7f334a85c1c0
>
> DEBUG: db_text [dbt_api.c:80]: allocate 16 bytes for RES_NAMES[1] at
> 0x7f334a85c420
>
> DEBUG: db_text [dbt_api.c:80]: allocate 16 bytes for RES_NAMES[2] at
> 0x7f334a85c450
>
> DEBUG: db_text [dbt_api.c:281]: DBTEXT: dbt_get_result returns 0
>
> DEBUG: avpops [avpops_impl.c:389]: AVPOPS: db_load_avp returns 0
>
> DEBUG: avpops [avpops_db.c:271]: close avp query
>
> DEBUG: <core> [db_res.c:81]: freeing 3 columns
>
> DEBUG: <core> [db_res.c:85]: freeing RES_NAMES[0] at 0x7f334a85c1c0
>
> DEBUG: <core> [db_res.c:85]: freeing RES_NAMES[1] at 0x7f334a85c420
>
> DEBUG: <core> [db_res.c:85]: freeing RES_NAMES[2] at 0x7f334a85c450
>
> DEBUG: <core> [db_res.c:94]: freeing result names at 0x7f334a85c3e0
>
> DEBUG: <core> [db_res.c:99]: freeing result types at 0x7f334a85c1f0
>
> DEBUG: <core> [db_res.c:136]: freeing result set at 0x7f334a85c390
>
> DEBUG: avpops [avpops_impl.c:420]: loaded avps = 0
>
> INFO: avp_db_load return result is -1
>
> I was expecting it to return at least one AVP .
>
> Any suggestions gratefully received .
>
> Hugh James
>
>
> Hugh James | Telephony Developer
>
> icons
>
> * 0845 543 0822
> *
>
> * Hugh.James at semafone.com
> * www.semafone.com <http://www.semafone.com>
> * @semafone <http://twitter.com/semafone>
> * SEMAFONE, 3 The Billings, Walnut Tree Close, Guildford, Surrey GU1
> 4UL
>
> logo
>
> This e-mail is intended only for the addressee named above. As this
> e-mail may contain confidential or privileged information if you are
> not the named addressee or the person responsible for delivering the
> message to the named addressee, please telephone us immediately.
> Please note that we cannot guarantee that this message, or any
> attachment, is virus free or has not been intercepted and amended. The
> views of the author may not necessarily reflect those of the Company.
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Nov 25-28
- more details about Kamailio trainings at http://www.asipto.com -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20131112/146225db/attachment.html>
More information about the sr-users
mailing list