Project

General

Profile

Feature #1682

OsmoNITB - Bug #1604: Easier / more direct SIP integration

osmo-sip-connector: Add better cause handling

Added by zecke about 2 years ago. Updated 27 days ago.

Status:
New
Priority:
Normal
Assignee:
sysmocom
Target version:
-
Start date:
03/31/2016
Due date:
% Done:

0%

Resolution:

Description

There are many causes for failure:

  • busy
  • ignored
  • released
  • radio failure

currently the call_leg interface for release_call doesn't include a field for the cause. We should define how to map SIP to GSM failures and vice versa. There are some non-standard fields for ITU Q.XXX fields.


Related issues

Duplicated by osmo-sip-connector - Feature #1964: osmo-sip-connector: Communicate the failure cause from MNCC to SIP Closed 03/03/2017

History

#1 Updated by laforge almost 2 years ago

  • Category set to osmo-sip-connector

#2 Updated by zecke about 1 year ago

  • Duplicated by Feature #1964: osmo-sip-connector: Communicate the failure cause from MNCC to SIP added

#3 Updated by zecke about 1 year ago

From Keith:

In sip.c:238, we respond SIP_486_BUSY_HERE on call failures.
MNCC communicates to us useful information, as per isdn_cause struct defined in lcr's cause.c IIUC
https://github.com/osmobuntu/lcr/blob/master/cause.c

It'd be nice to implement this.
I tried to get the gsm_mncc object into sip_release_call() to access the gsm_mncc->cause but came up against my deficient knowledge of C. :(

Happy to help otherwise with the copy pasting :)

#4 Updated by laforge about 1 year ago

  • Project changed from OsmoNITB to osmo-sip-connector
  • Category deleted (osmo-sip-connector)

#5 Updated by keith about 1 year ago

How can I help to move this forward?
I get those unpleasant 3 ascending "failure" tones from the nokia regargless of hangup cause. for ex. on normal call termination. but you know that. If you can point me the right direction, I can try and contribute.

#6 Updated by zecke about 1 year ago

On 29. Mar 2017, at 20:43, keith [REDMINE] <> wrote:

Issue #1682 has been updated by keith.

How can I help to move this forward?
I get those unpleasant 3 ascending "failure" tones from the nokia regargless of hangup cause. for ex. on normal call termination. but you know that. If you can point me the right direction, I can try and contribute.

Mostly how to map it and what SIP header to check for..

diff --git a/src/call.h b/src/call.h
index 7cb4932..9e70e2c 100644
--- a/src/call.h
+++ b/src/call.h
@@ -66,7 +66,7 @@ struct call_leg {
 * Set by the call_leg implementation and will be called
 * by the application to release the call.
 */
-       void (*release_call)(struct call_leg *);
+       void (*release_call)(struct call_leg *, int q931_cause);
};

enum sip_cc_state {

I would start here and then look into the compilation failures to see which cause makes sense. E.g. for the mncc protocol we have the cause field which most likely is ITU Q931 encoded already (it could be something different but probably we can assume that this is not the case)

When is a realistic timeframe for you to look at it? I have some spots in my schedule where I could work on it with you.

holger

#7 Updated by laforge 27 days ago

  • Assignee changed from zecke to sysmocom

Also available in: Atom PDF