mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-02 02:18:31 +00:00
Merge "chan_pjsip: Don't assume a session will have a channel." into 13
This commit is contained in:
@@ -737,17 +737,27 @@ static int read_pjsip(void *data)
|
|||||||
struct pjsip_func_args *func_args = data;
|
struct pjsip_func_args *func_args = data;
|
||||||
|
|
||||||
if (!strcmp(func_args->param, "rtp")) {
|
if (!strcmp(func_args->param, "rtp")) {
|
||||||
|
if (!func_args->session->channel) {
|
||||||
|
func_args->ret = -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
func_args->ret = channel_read_rtp(func_args->session->channel, func_args->type,
|
func_args->ret = channel_read_rtp(func_args->session->channel, func_args->type,
|
||||||
func_args->field, func_args->buf,
|
func_args->field, func_args->buf,
|
||||||
func_args->len);
|
func_args->len);
|
||||||
} else if (!strcmp(func_args->param, "rtcp")) {
|
} else if (!strcmp(func_args->param, "rtcp")) {
|
||||||
|
if (!func_args->session->channel) {
|
||||||
|
func_args->ret = -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
func_args->ret = channel_read_rtcp(func_args->session->channel, func_args->type,
|
func_args->ret = channel_read_rtcp(func_args->session->channel, func_args->type,
|
||||||
func_args->field, func_args->buf,
|
func_args->field, func_args->buf,
|
||||||
func_args->len);
|
func_args->len);
|
||||||
} else if (!strcmp(func_args->param, "endpoint")) {
|
} else if (!strcmp(func_args->param, "endpoint")) {
|
||||||
if (!func_args->session->endpoint) {
|
if (!func_args->session->endpoint) {
|
||||||
ast_log(AST_LOG_WARNING, "Channel %s has no endpoint!\n", ast_channel_name(func_args->session->channel));
|
ast_log(AST_LOG_WARNING, "Channel %s has no endpoint!\n", func_args->session->channel ?
|
||||||
return -1;
|
ast_channel_name(func_args->session->channel) : "<unknown>");
|
||||||
|
func_args->ret = -1;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
snprintf(func_args->buf, func_args->len, "%s", ast_sorcery_object_get_id(func_args->session->endpoint));
|
snprintf(func_args->buf, func_args->len, "%s", ast_sorcery_object_get_id(func_args->session->endpoint));
|
||||||
} else if (!strcmp(func_args->param, "contact")) {
|
} else if (!strcmp(func_args->param, "contact")) {
|
||||||
@@ -761,6 +771,10 @@ static int read_pjsip(void *data)
|
|||||||
}
|
}
|
||||||
snprintf(func_args->buf, func_args->len, "%s", ast_sorcery_object_get_id(func_args->session->aor));
|
snprintf(func_args->buf, func_args->len, "%s", ast_sorcery_object_get_id(func_args->session->aor));
|
||||||
} else if (!strcmp(func_args->param, "pjsip")) {
|
} else if (!strcmp(func_args->param, "pjsip")) {
|
||||||
|
if (!func_args->session->channel) {
|
||||||
|
func_args->ret = -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
func_args->ret = channel_read_pjsip(func_args->session->channel, func_args->type,
|
func_args->ret = channel_read_pjsip(func_args->session->channel, func_args->type,
|
||||||
func_args->field, func_args->buf,
|
func_args->field, func_args->buf,
|
||||||
func_args->len);
|
func_args->len);
|
||||||
|
Reference in New Issue
Block a user