From db2336a9f5f0104ca0403be4a15b38415bb95e4e Mon Sep 17 00:00:00 2001 From: Keith Date: Mon, 28 Jan 2019 12:16:24 +0100 Subject: Support International Caller ID When the SIP call source contains + as first character, set the TON to International so that the MS displays caller ID correctly Change-Id: Idcfa31aff90e04dd0aa3583957f288889b1bbefe --- src/mncc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mncc.c b/src/mncc.c index ea6a9fc..5d220ba 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -775,8 +775,14 @@ int mncc_create_remote_leg(struct mncc_connection *conn, struct call *call) mncc.fields |= MNCC_F_CALLING; mncc.calling.plan = GSM48_NPI_ISDN_E164; - mncc.calling.type = GSM48_TON_UNKNOWN; - osmo_strlcpy(mncc.calling.number, call->source, sizeof(mncc.calling.number)); + + if (call->source && call->source[0] == '+') { + mncc.calling.type = GSM48_TON_INTERNATIONAL; + OSMO_STRLCPY_ARRAY(mncc.calling.number, call->source + 1); + } else { + mncc.calling.type = GSM48_TON_UNKNOWN; + OSMO_STRLCPY_ARRAY(mncc.calling.number, call->source); + } if (conn->app->use_imsi_as_id) { snprintf(mncc.imsi, 15, "%s", call->dest); -- cgit v1.2.3