Andrew, Congratulations on your new position as a Kamailio developer! When I saw your module (SCA) I began testing immediately since it may be a stepping stone to help me get the Polycom barge-in feature working with Kamailio. However, I ran into a few difficulties. Can you assist me? To make your existing code work as a K module I had to change a few lines of code and recompile under modules_k. Specifically, since the K definition of the ucontact structure defines ucontact->aor as str* and the S definition as str**, I changed “&c->aor” to “c->aor” in the following lines of sca_usrloc_cb.c:
73: if ( !sca_uri_is_shared_appearance( sca, c->aor )) { 74: LM_DBG( "%.*s is not a shared appearance line", STR_FMT( c->aor )); 79: &SCA_EVENT_NAME_CALL_INFO, c->aor ) < 0 ) {
Since I use PostgreSQL as my SQL engine I created the SCA entries using this code:
INSERT INTO version (table_name, table_version) values ('sca_subscriptions', '0'); CREATE TABLE sca_subscriptions ( id SERIAL PRIMARY KEY NOT NULL, subscriber VARCHAR(255) NOT NULL, aor VARCHAR(255) NOT NULL, event INTEGER NOT NULL, expires INTEGER NOT NULL, state INTEGER NOT NULL, app_idx INTEGER NOT NULL, call_id VARCHAR(255) NOT NULL, from_tag VARCHAR(128) NOT NULL, to_tag VARCHAR(128) NOT NULL, notify_cseq INTEGER NOT NULL, subscribe_cseq INTEGER NOT NULL, CONSTRAINT sca_subscriptions_idx UNIQUE (subscriber, call_id, from_tag, to_tag));
I applied the recommendations from your documentation on configuring Kamailio (3.3.1) and inserted the call to “sca_handle_subscribe ()” in kamailio.cfg. Next, I connected two Polycom phones (SP335 and SP650) to my network and configured them to enable presence and use a shared line. Four lines were configured on the phones as shown below:
SP335 Line 1 (p11) = private line 6013 SP335 Line 1 (p12) = shared line 1519 SP650 Line 1 (p21) = private line 6014 SP650 Line 2 (p22) = shared line 1519
My tests get inconsistent results on the line LEDs and it seems that they do not work as a shared line. When I ran a tcpdump of the SIP communication (see attached pcap files) I found several anomalies:
- Some packets (sca-reboot1 #22, 44, 113, 120 and sca-reboot2 #17, 38) contain spurious NUL characters in the tags section. In all tests it seems to occur in the Expire tag when Kamailio accepts the subscription. - When Kamailio sends call-info NOTIFY the Content-Length tag is missing. - Sometimes the phone does not respond to a call-info NOTIFY event ( sca-reboot1 #23, 45 and sca-reboot2 #18, 39). - I don't have an example here but sometimes the phones respond to the call-info NOTIFY with "481 Call Leg/Transaction Does Not Exist".
I think some of my problems are related to these anomalies. Could you help me to determine if this is a problem with the code itself, my failure to properly port it to the K module, or some other issue? Once again, thank you for making this very useful module for Kamailio and for the documentation to make it work. I hope that resolving my problems may help the code to become a part of Kamailio.
Sincerely yours, Bob Boisvert