Project

General

Profile

Feature #1682

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

osmo-sip-connector: Add better cause handling

Added by zecke over 2 years ago. Updated 20 days ago.

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

60%

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

Has duplicate osmo-sip-connector - Feature #1964: osmo-sip-connector: Communicate the failure cause from MNCC to SIPClosed2017-03-03

History

#1 Updated by laforge over 2 years ago

  • Category set to osmo-sip-connector

#2 Updated by zecke over 1 year ago

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

#3 Updated by zecke over 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 over 1 year ago

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

#5 Updated by keith over 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 over 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 7 months ago

  • Assignee changed from zecke to sysmocom

#8 Updated by laforge about 2 months ago

  • Status changed from New to In Progress
  • Assignee changed from sysmocom to keith

#10 Updated by laforge 21 days ago

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)