We are trying to configure the ACC module to log the Reason: header found in SIP BYE and SIP 4xx messages sent by US carriers when making calls to the PSTN.
We have added a cause field (the Reason header contains the Q.850 cause code associated with telephony events, typically disconnect) to the acc and missed_calls tables (see tables description further below) and changed opensips.cfg to read that header and store it:
modparam("acc", "db_flag", 2) modparam("acc", "db_missed_flag", 3) modparam("acc", "db_url", "mysql://root:password@localhost/opensips") modparam("acc", "db_extra", "from_uri=$fu;to_uri=$tu;request_uri=$ru;cause=$(hdr(Reason))")
This works quite nicely for calls logged in the acc table, such as:
mysql> select * from acc where date(time) = curdate() and (cause like '%850%') limit 1; +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | 1903785 | BYE | 627B7414-1509 | telstage-3e5-492294f9 | 492294f9-0127-00105838-0657a1e7-22e4c653@88.88.88.88 | 200 | Ok | 2008-11-18 05:12:55 | sip:+5599999999@99.99.99.99 | sip:+15555555555@88.88.88.88:5060 | sip:88.88.88.88:5060;transport=udp | Q.850;cause=16 | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ 1 row in set (1.58 sec)
The cause field contains "Q.850;cause=16" taken from the Reason: header.
However, the same Reason: header is NOT logged for calls found in the missed_calls table:
mysql> select * from missed_calls where date(time) = curdate() and sip_code = 480 limit 1; +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | 1231364 | INVITE | telstage-5d06-492293b5 | 627682C8-40F | 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88 | 480 | Temporarily Not Available | 2008-11-18 05:06:51 | sip:+15555555555@88.88.88.88:5060 | sip:+5599999999@63.63.63.63 | sip:69085599999999@200.0.0.0 | | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ 1 row in set (1.09 sec)
Note that the cause field is empty, while the OpenSIPS logs clearly show a Reason: header present in the SIP 480 message:
Nov 18 05:06:51 sip100 /usr/local/sbin/opensips[20355]: TRACE:ONREPLY_ROUTE: src(200.0.0.0:5060) dst(63.63.63.63:5060) msg(SIP/2.0 480 Temporarily Not Available^M Via: SIP/2.0/UDP 63.63.63.63;branch=z9hG4bK96cf.a009bc13.0,SIP/2.0/UDP 88.88.88.88:5060;branch=z9hG4bK492293b5-0154-0013be66-6d9882a2-bafcf3d3^M From: sip:+15555555555@88.88.88.88:5060;tag=telstage-5d06-492293b5^M To: sip:+5599999999@63.63.63.63;tag=627682C8-40F^M Date: Tue, 18 Nov 2008 10:06:45 GMT^M Call-ID: 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88^M Server: Cisco-SIPGateway/IOS-12.x^M CSeq: 13960 INVITE^M Allow-Events: telephone-event^M Reason: Q.850;cause=18^M Content-Length: 0^M ^M )
Is this a bug from the ACC module or a limitation, i.e. SIP 4xx messages are not handled in the same way as the BYE messages in the acc table?
Any advice would be most appreciated!!
Serge
PS: here are the schemas we're using for the acc and missed_calls tables:
mysql> describe acc; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
mysql> describe missed_calls; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
Hello,
the acc uses the SIP request to get the attributes for logging.
It is why you get it for BYE (a sip request) and not for failed calls where the header is in reply.
Anyhow, there are couple of solutions to get it: - store the header in an avp (in route for BYE and in onreply_route for replies) and set tm parameter: http://kamailio.org/docs/modules/1.4.x/tm.html#id2506328
- if you don't have parallel forking, then you can use $var(...) instead of avp (a bit faster)
Cheers, Daniel
On 11/19/08 01:07, sergejf wrote:
We are trying to configure the ACC module to log the Reason: header found in SIP BYE and SIP 4xx messages sent by US carriers when making calls to the PSTN.
We have added a cause field (the Reason header contains the Q.850 cause code associated with telephony events, typically disconnect) to the acc and missed_calls tables (see tables description further below) and changed opensips.cfg to read that header and store it:
modparam("acc", "db_flag", 2) modparam("acc", "db_missed_flag", 3) modparam("acc", "db_url", "mysql://root:password@localhost/opensips") modparam("acc", "db_extra", "from_uri=$fu;to_uri=$tu;request_uri=$ru;cause=$(hdr(Reason))")
This works quite nicely for calls logged in the acc table, such as:
mysql> select * from acc where date(time) = curdate() and (cause like '%850%') limit 1; +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | 1903785 | BYE | 627B7414-1509 | telstage-3e5-492294f9 | 492294f9-0127-00105838-0657a1e7-22e4c653@88.88.88.88 | 200 | Ok | 2008-11-18 05:12:55 | sip:+5599999999@99.99.99.99 | sip:+15555555555@88.88.88.88:5060 | sip:88.88.88.88:5060;transport=udp | Q.850;cause=16 | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ 1 row in set (1.58 sec)
The cause field contains "Q.850;cause=16" taken from the Reason: header.
However, the same Reason: header is NOT logged for calls found in the missed_calls table:
mysql> select * from missed_calls where date(time) = curdate() and sip_code = 480 limit 1; +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | 1231364 | INVITE | telstage-5d06-492293b5 | 627682C8-40F | 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88 | 480 | Temporarily Not Available | 2008-11-18 05:06:51 | sip:+15555555555@88.88.88.88:5060 | sip:+5599999999@63.63.63.63 | sip:69085599999999@200.0.0.0 | | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ 1 row in set (1.09 sec)
Note that the cause field is empty, while the OpenSIPS logs clearly show a Reason: header present in the SIP 480 message:
Nov 18 05:06:51 sip100 /usr/local/sbin/opensips[20355]: TRACE:ONREPLY_ROUTE: src(200.0.0.0:5060) dst(63.63.63.63:5060) msg(SIP/2.0 480 Temporarily Not Available^M Via: SIP/2.0/UDP 63.63.63.63;branch=z9hG4bK96cf.a009bc13.0,SIP/2.0/UDP 88.88.88.88:5060;branch=z9hG4bK492293b5-0154-0013be66-6d9882a2-bafcf3d3^M From: sip:+15555555555@88.88.88.88:5060;tag=telstage-5d06-492293b5^M To: sip:+5599999999@63.63.63.63;tag=627682C8-40F^M Date: Tue, 18 Nov 2008 10:06:45 GMT^M Call-ID: 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88^M Server: Cisco-SIPGateway/IOS-12.x^M CSeq: 13960 INVITE^M Allow-Events: telephone-event^M Reason: Q.850;cause=18^M Content-Length: 0^M ^M )
Is this a bug from the ACC module or a limitation, i.e. SIP 4xx messages are not handled in the same way as the BYE messages in the acc table?
Any advice would be most appreciated!!
Serge
PS: here are the schemas we're using for the acc and missed_calls tables:
mysql> describe acc; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
mysql> describe missed_calls; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
Hello Daniel,
Thank you for your response. So if I understand well we should enable avp's in the onreply route:
- modparam("tm", "onreply_avp_mode", 1)
reference the avp in the ACC db_extra:
- modparam("acc", "db_extra", "from_uri=$fu;to_uri=$tu;request_uri=$ru;cause=$avp(i:25)")
and store the Reason: header in the avp used in conjunction with the ACC module:
- $avp(i:25) = hdr(Reason);
Would that work or do we need to store the Reason: header directly in the missed_calls table, bypassing the ACC module? What functionality would we need to use in order to do that and is there any risk that ACC may overwrite the cause field in missed_calls after we store the Reason: header?
Thanks in advance for shedding some light on that topic.
Best Regards,
Serge
miconda wrote:
Hello,
the acc uses the SIP request to get the attributes for logging.
It is why you get it for BYE (a sip request) and not for failed calls where the header is in reply.
Anyhow, there are couple of solutions to get it:
- store the header in an avp (in route for BYE and in onreply_route for
replies) and set tm parameter: http://kamailio.org/docs/modules/1.4.x/tm.html#id2506328
- if you don't have parallel forking, then you can use $var(...) instead
of avp (a bit faster)
Cheers, Daniel
On 11/19/08 01:07, sergejf wrote:
We are trying to configure the ACC module to log the Reason: header found in SIP BYE and SIP 4xx messages sent by US carriers when making calls to the PSTN.
We have added a cause field (the Reason header contains the Q.850 cause code associated with telephony events, typically disconnect) to the acc and missed_calls tables (see tables description further below) and changed opensips.cfg to read that header and store it:
modparam("acc", "db_flag", 2) modparam("acc", "db_missed_flag", 3) modparam("acc", "db_url", "mysql://root:password@localhost/opensips") modparam("acc", "db_extra", "from_uri=$fu;to_uri=$tu;request_uri=$ru;cause=$(hdr(Reason))")
This works quite nicely for calls logged in the acc table, such as:
mysql> select * from acc where date(time) = curdate() and (cause like '%850%') limit 1; +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | 1903785 | BYE | 627B7414-1509 | telstage-3e5-492294f9 | 492294f9-0127-00105838-0657a1e7-22e4c653@88.88.88.88 | 200 | Ok | 2008-11-18 05:12:55 | sip:+5599999999@99.99.99.99 | sip:+15555555555@88.88.88.88:5060 | sip:88.88.88.88:5060;transport=udp | Q.850;cause=16 | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ 1 row in set (1.58 sec)
The cause field contains "Q.850;cause=16" taken from the Reason: header.
However, the same Reason: header is NOT logged for calls found in the missed_calls table:
mysql> select * from missed_calls where date(time) = curdate() and sip_code = 480 limit 1; +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | 1231364 | INVITE | telstage-5d06-492293b5 | 627682C8-40F | 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88 | 480 | Temporarily Not Available | 2008-11-18 05:06:51 | sip:+15555555555@88.88.88.88:5060 | sip:+5599999999@63.63.63.63 | sip:69085599999999@200.0.0.0 | | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ 1 row in set (1.09 sec)
Note that the cause field is empty, while the OpenSIPS logs clearly show a Reason: header present in the SIP 480 message:
Nov 18 05:06:51 sip100 /usr/local/sbin/opensips[20355]: TRACE:ONREPLY_ROUTE: src(200.0.0.0:5060) dst(63.63.63.63:5060) msg(SIP/2.0 480 Temporarily Not Available^M Via: SIP/2.0/UDP 63.63.63.63;branch=z9hG4bK96cf.a009bc13.0,SIP/2.0/UDP 88.88.88.88:5060;branch=z9hG4bK492293b5-0154-0013be66-6d9882a2-bafcf3d3^M From: sip:+15555555555@88.88.88.88:5060;tag=telstage-5d06-492293b5^M To: sip:+5599999999@63.63.63.63;tag=627682C8-40F^M Date: Tue, 18 Nov 2008 10:06:45 GMT^M Call-ID: 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88^M Server: Cisco-SIPGateway/IOS-12.x^M CSeq: 13960 INVITE^M Allow-Events: telephone-event^M Reason: Q.850;cause=18^M Content-Length: 0^M ^M )
Is this a bug from the ACC module or a limitation, i.e. SIP 4xx messages are not handled in the same way as the BYE messages in the acc table?
Any advice would be most appreciated!!
Serge
PS: here are the schemas we're using for the acc and missed_calls tables:
mysql> describe acc; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
mysql> describe missed_calls; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
-- Daniel-Constantin Mierla http://www.asipto.com
Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
Hello,
On 11/20/08 15:46, sergejf wrote:
Hello Daniel,
Thank you for your response. So if I understand well we should enable avp's in the onreply route:
- modparam("tm", "onreply_avp_mode", 1)
reference the avp in the ACC db_extra:
- modparam("acc", "db_extra",
"from_uri=$fu;to_uri=$tu;request_uri=$ru;cause=$avp(i:25)")
and store the Reason: header in the avp used in conjunction with the ACC module:
- $avp(i:25) = hdr(Reason);
yes, this is one way to go.
Would that work or do we need to store the Reason: header directly in the missed_calls table, bypassing the ACC module?
acc will do it if you configure as above.
Cheers, Daniel
What functionality would we need to use in order to do that and is there any risk that ACC may overwrite the cause field in missed_calls after we store the Reason: header?
Thanks in advance for shedding some light on that topic.
Best Regards,
Serge
miconda wrote:
Hello,
the acc uses the SIP request to get the attributes for logging.
It is why you get it for BYE (a sip request) and not for failed calls where the header is in reply.
Anyhow, there are couple of solutions to get it:
- store the header in an avp (in route for BYE and in onreply_route for
replies) and set tm parameter: http://kamailio.org/docs/modules/1.4.x/tm.html#id2506328
- if you don't have parallel forking, then you can use $var(...) instead
of avp (a bit faster)
Cheers, Daniel
On 11/19/08 01:07, sergejf wrote:
We are trying to configure the ACC module to log the Reason: header found in SIP BYE and SIP 4xx messages sent by US carriers when making calls to the PSTN.
We have added a cause field (the Reason header contains the Q.850 cause code associated with telephony events, typically disconnect) to the acc and missed_calls tables (see tables description further below) and changed opensips.cfg to read that header and store it:
modparam("acc", "db_flag", 2) modparam("acc", "db_missed_flag", 3) modparam("acc", "db_url", "mysql://root:password@localhost/opensips") modparam("acc", "db_extra", "from_uri=$fu;to_uri=$tu;request_uri=$ru;cause=$(hdr(Reason))")
This works quite nicely for calls logged in the acc table, such as:
mysql> select * from acc where date(time) = curdate() and (cause like '%850%') limit 1; +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ | 1903785 | BYE | 627B7414-1509 | telstage-3e5-492294f9 | 492294f9-0127-00105838-0657a1e7-22e4c653@88.88.88.88 | 200 | Ok | 2008-11-18 05:12:55 | sip:+5599999999@99.99.99.99 | sip:+15555555555@88.88.88.88:5060 | sip:88.88.88.88:5060;transport=udp | Q.850;cause=16 | +---------+--------+---------------+-----------------------+-----------------------------------------------------+----------+------------+---------------------+---------------------------------+---------------------------------+-----------------------------------+----------------+ 1 row in set (1.58 sec)
The cause field contains "Q.850;cause=16" taken from the Reason: header.
However, the same Reason: header is NOT logged for calls found in the missed_calls table:
mysql> select * from missed_calls where date(time) = curdate() and sip_code = 480 limit 1; +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | id | method | from_tag | to_tag | callid | sip_code | sip_reason | time | from_uri | to_uri | request_uri | cause | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ | 1231364 | INVITE | telstage-5d06-492293b5 | 627682C8-40F | 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88 | 480 | Temporarily Not Available | 2008-11-18 05:06:51 | sip:+15555555555@88.88.88.88:5060 | sip:+5599999999@63.63.63.63 | sip:69085599999999@200.0.0.0 | | +---------+--------+------------------------+--------------+-----------------------------------------------------+----------+---------------------------+---------------------+---------------------------------+---------------------------------+---------------------------------+-------+ 1 row in set (1.09 sec)
Note that the cause field is empty, while the OpenSIPS logs clearly show a Reason: header present in the SIP 480 message:
Nov 18 05:06:51 sip100 /usr/local/sbin/opensips[20355]: TRACE:ONREPLY_ROUTE: src(200.0.0.0:5060) dst(63.63.63.63:5060) msg(SIP/2.0 480 Temporarily Not Available^M Via: SIP/2.0/UDP 63.63.63.63;branch=z9hG4bK96cf.a009bc13.0,SIP/2.0/UDP 88.88.88.88:5060;branch=z9hG4bK492293b5-0154-0013be66-6d9882a2-bafcf3d3^M From: sip:+15555555555@88.88.88.88:5060;tag=telstage-5d06-492293b5^M To: sip:+5599999999@63.63.63.63;tag=627682C8-40F^M Date: Tue, 18 Nov 2008 10:06:45 GMT^M Call-ID: 492293b5-0154-0013be65-6d9882a2-bafcf3d3@88.88.88.88^M Server: Cisco-SIPGateway/IOS-12.x^M CSeq: 13960 INVITE^M Allow-Events: telephone-event^M Reason: Q.850;cause=18^M Content-Length: 0^M ^M )
Is this a bug from the ACC module or a limitation, i.e. SIP 4xx messages are not handled in the same way as the BYE messages in the acc table?
Any advice would be most appreciated!!
Serge
PS: here are the schemas we're using for the acc and missed_calls tables:
mysql> describe acc; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
mysql> describe missed_calls; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | method | varchar(16) | NO | | | | | from_tag | varchar(64) | NO | | | | | to_tag | varchar(64) | NO | | | | | callid | varchar(64) | NO | MUL | | | | sip_code | varchar(3) | NO | | | | | sip_reason | varchar(32) | NO | | | | | time | datetime | NO | | | | | from_uri | varchar(64) | NO | | | | | to_uri | varchar(64) | NO | | | | | request_uri | varchar(64) | NO | | | | | cause | varchar(60) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 12 rows in set (0.00 sec)
-- Daniel-Constantin Mierla http://www.asipto.com
Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users