Apologies for missing this... Got caught up in tornado in my location. I will check and respond once I am able to get back running..
THanks
On Fri, Mar 24, 2023 at 9:47 AM Henning Westerholt hw@gilawa.com wrote:
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
*From:* Edo edo.ekunwe@gmail.com *Sent:* Samstag, 18. März 2023 20:21 *To:* Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org *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