Hello,

Are you getting any error message in the log files? Are you able to execute the 
query e.g. by command line?

Cheers,

Henning Westerholt

--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com<https://gilawa.com/>


From: Edo <[email protected]>
Sent: Samstag, 18. März 2023 20:21
To: Kamailio (SER) - Users Mailing List <[email protected]>
Subject: [SR-Users] MongoDB query from Kamailio help needed


Help is needed. I know I have seen a similar problem either via email or google 
search but for the life of me I cannot find it now.



I am using:

Ubuntu:

5.4.0-144-generic #161-Ubuntu SMP Fri Feb 3 14:49:04 UTC 2023 x86_64 x86_64 
x86_64 GNU/Linux

Kamailio:

version: kamailio 5.3.9 (x86_64/linux)  -- This is a dev platform and I can 
update kamailio if needed.





I am trying to query a mongodb collection for the phone number stored under 
“did” as an integer and make a decision based on the returned result (boolean 
is sufficient for this decision).



I don’t know what I am doing wrong here. Any help will be well appreciated





##### This is the insert statement into the telephone db from a linux script

 db.c$coll.insertOne({"did":parseInt($(cut -d_ -f 1 <<< $1)), "callDesc":$(cut 
-d_ -f 1 <<< $1)}))" >> $(cut -d_ -f 1 <<< $1).js





did is stored as an integer and the callDesc is stored as presented by $rU



{ "_id" : ObjectId("641580b4863678d0ba38d69a"), "did" : 1XXXXXXXXXX, "callDesc" 
: 1XXXXXXXXXXXX }

> db.c234.find()

{ "_id" : ObjectId("641580b4863678d0ba38d69a"), "did" : 2XXXXXXXXXXXX, 
"callDesc" : 2XXXXXXXXXXXX }

> db.c234.find()

{ "_id" : ObjectId("641580b4863678d0ba38d69a"), "did" : 3XXXXXXXXXXXX, 
"callDesc" : 3XXXXXXXXXXXX }

>





Kamailio config:

.....

.....



# --- mongodb module loaded 202201082322

loadmodule "ndb_mongodb.so"





 if (uri==myself)

        {

                sl_send_reply("100", "Trying to check if uri is myself $rU 
$ru");

                #return;



                #Adding this to test connection to mongodb…. This worked and 
the reply was sent to the endpoint

                if(mongodb_cmd_simple("mongodbsrv1", "telephone", "cXXX”, "{ 
\"collStats\": \"cXXX\” }", "mgr1"))

                {

                        sl_send_reply("183", "I got inside this message loop 
$rU found in mongodb");

                        xlog("response from mongodb is 
[[$mongodb(mgr1=>value)]]\n");

                }

                # End of the test



                        #This is to run the actual db query to test if the 
phone number is in the mongodb…. I am not successful at this query even when 
the number is known to be in the database

                if(mongodb_find_one("mongodbsrv1", "telephone", "cXXX”, 
"{\"did\" : \"$rU\" }", "mongoResponse1"))

                {

                        # Route to confirmed route here -- 202302212032





                        sl_send_reply("183", "I got inside this mongodb message 
loop");

                        route(CONFIRMED_ROUTE);

                        xlog("response from mongodb is 
[[$mongodb(mongoResponse1=>value)]]\n");

                }

                else

                {

                        route(UNCONFIRMED_ROUTE);

                }

        }

        #append_hf("P-hint: outbound\r\n");

        route(RELAY);

        #exit;

}


Please help.

--
-----
Ekunwe
Tel: 601.497.3932
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:

Reply via email to