Hi guys!
In my lab environment I ran into an issue with PJSIP endpoints created via ARI
with a realtime database as backend.
I'm using a MySQL database in my lab setup.
I noticed that some of the values of the endpoint object do not find their way
into the database.
When creating the endpoint (and auth and aor before that) using cURL I get the
following JSON reply indicating that the attributes I set in the request are
successfully accepted by Asterisk:
curl -X PUT -H "Content-Type: application/json" -u asterisk:asterisk -d
'{"fields": [{"attribute": "send_pai", "value": "yes"}, {"attribute":
"send_rpid", "value": "yes"}, { "attribute": "allow", "value":
"!all,g722,ulaw,alaw,h264"}, {"attribute": "ice_support", "value": "yes"},
{"attribute": "force_rport", "value": "yes"}, {"attribute": "rewrite_contact",
"value": "yes"}, {"attribute": "rtp_symmetric", "value": "yes"}, {"attribute":
"context", "value": "default" }, {"attribute": "auth", "value": "snom820" },
{"attribute": "aors", "value": "snom820"} ] }'
http://localhost:8088/ari/asterisk/config/dynamic/res_pjsip/endpoint/snom820
I get the following JSON response (shortened to just show the attributes set in
the request):
[...,
{"attribute":"send_rpid","value":"true"},
{"attribute":"aors","value":"snom820"},
{"attribute":"context","value":"default"},
{"attribute":"rtp_symmetric","value":"true"},
{"attribute":"force_rport","value":"true"},
{"attribute":"ice_support","value":"true,
{"attribute":"allow","value":"(g722|ulaw|alaw|h264)"},
{"attribute":"rewrite_contact","value":"true"},
{"attribute":"auth","value":"snom820,
{"attribute":"send_pai","value":"true"},...]
So at first glance everything seems to be OK.
However when looking at the database everything that is not a string (namely
all yes/no ENUMs) comes up empty, which in turn causes Asterisk to use the
default values for these settings.
So the only rows correctly set in the dabase in case of the above values are
aors ,context, auth & allow. All the other rows come up empty.
Verifying in the Asterisk CLI shows these values (again shortened):
asterisk*CLI> pjsip show endpoint snom820
Endpoint: <Endpoint/CID.....................................> <State.....>
<Channels.>
I/OAuth:
<AuthId/UserName...........................................................>
Aor: <Aor............................................> <MaxContact>
Contact: <Aor/ContactUri..........................> <Hash....> <Status>
<RTT(ms)..>
Transport: <TransportId........> <Type> <cos> <tos>
<BindAddress..................>
Identify:
<Identify/Endpoint.........................................................>
Match: <criteria.........................>
Channel: <ChannelId......................................> <State.....>
<Time.....>
Exten: <DialedExten...........> CLCID: <ConnectedLineCID.......>
==========================================================================================
Endpoint: snom820/unknown Unavailable 0
of inf
InAuth: snom820/snom820
Aor: snom820 10
ParameterName : ParameterValue
==========================================================
allow : (g722|ulaw|alaw|h264)
aors : snom820
auth : snom820
context : default
force_rport : true
ice_support : false
rewrite_contact : false
rtp_symmetric : false
send_pai : false
send_rpid : false
After correlating these empty values in the database with their default setting
in the Asterisk code, I saw that only force_rport defaults to true.
This leads me to believe that Asterisk at runtime takes the default values for
empty rows in the database as they do not reflect the values that were in the
JSON response.
Finally, this leads me to my question:
Is this a bug, or is there something wrong in my method of creating these
endpoints and the assumption that they should be properly transferred to the
database?
If it is a bug I will file an issue, If it is not can someone please point out
what is wrong here.
Thank you!
With best regards
Florian Floimair
COMMEND INTERNATIONAL GMBH
A-5020 Salzburg, Saalachstraße 51
http://www.commend.com<http://www.commend.com/>
Security and Communication by Commend
FN 178618z | LG Salzburg
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev