提交 7fa3f7f3 authored 作者: Giovanni Maruzzelli's avatar Giovanni Maruzzelli

skypopen: fixing bug from Anton VG, adding some guards against NULL sessions and channels

上级 3ad0d5d6
......@@ -938,6 +938,8 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
char *p = digit_str;
switch_channel_t *channel = switch_core_session_get_channel(session);
if(channel){
while (p && *p) {
switch_dtmf_t dtmf;
dtmf.digit = *p;
......@@ -948,6 +950,9 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
NOTICA("DTMF DETECTED: [%s] new_dtmf_timestamp: %u, delta_t: %u\n", SKYPOPEN_P_LOG, digit_str, (unsigned int) new_dtmf_timestamp,
(unsigned int) (new_dtmf_timestamp - tech_pvt->old_dtmf_timestamp));
tech_pvt->old_dtmf_timestamp = new_dtmf_timestamp;
}else{
WARNINGA("NO CHANNEL ?\n", SKYPOPEN_P_LOG);
}
}
}
}
......@@ -2138,6 +2143,7 @@ int dtmf_received(private_t *tech_pvt, char *value)
switch_channel_t *channel = NULL;
session = switch_core_session_locate(tech_pvt->session_uuid_str);
if (session) {
channel = switch_core_session_get_channel(session);
if (channel) {
......@@ -2165,6 +2171,9 @@ int dtmf_received(private_t *tech_pvt, char *value)
WARNINGA("received %c DTMF, but no channel?\n", SKYPOPEN_P_LOG, value[0]);
}
switch_core_session_rwunlock(session);
}else{
WARNINGA("received %c DTMF, but no session?\n", SKYPOPEN_P_LOG, value[0]);
}
return 0;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论