parse RAN out of the mncc message

This commit is contained in:
gsmevent admin 2018-12-26 03:58:25 +01:00
parent 05a74f1953
commit f4ff6844d2
4 changed files with 17 additions and 0 deletions

View File

@ -30,6 +30,8 @@ struct call {
const char *source;
const char *dest;
uint8_t ran;
};
enum {

View File

@ -452,6 +452,7 @@ static void check_setup(struct mncc_connection *conn, const char *buf, int rc)
"MNCC leg(%u) failed to allocate call\n", data->callref);
return mncc_send(conn, MNCC_REJ_REQ, data->callref);
}
call->ran = data->ran;
leg = (struct mncc_call_leg *) call->initial;
leg->base.connect_call = mncc_call_leg_connect;

View File

@ -155,6 +155,7 @@ struct gsm_mncc {
int notify; /* 0..127 */
int emergency;
char imsi[16];
uint8_t ran;
unsigned char lchan_type;
unsigned char lchan_mode;

View File

@ -427,6 +427,19 @@ static int send_invite(struct sip_agent *agent, struct sip_call_leg *leg,
agent->app->sip.remote_port);
char *sdp = sdp_create_file(leg, other);
switch (leg->base.call->ran) {
case 1:
nua_set_params(leg->nua_handle, SIPTAG_HEADER_STR("P-Access-Network-Info: 3GPP-GERAN"));
break;
case 2:
nua_set_params(leg->nua_handle, SIPTAG_HEADER_STR("P-Access-Network-Info: 3GPP-UTRAN"));
break;
case 0:
default:
nua_set_params(leg->nua_handle, SIPTAG_HEADER_STR("P-Access-Network-Info: 3GPP-UNKNOWN"));
break;
}
leg->state = SIP_CC_INITIAL;
leg->dir = SIP_DIR_MT;
nua_invite(leg->nua_handle,