diff options
author | Liong Sauw Ming <ming@teluu.com> | 2012-03-07 03:09:33 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2012-03-07 03:09:33 +0000 |
commit | ef83c42e3eca97591b41fbf56705840fcaeb2346 (patch) | |
tree | 08ac9d05049f9812661ca5cf5a807dc58fe4a4d2 /pjsip/src/pjsua-lib/pjsua_call.c | |
parent | 7cbfac3a0ae0c69d087f6d4cf7247891ef9a6aba (diff) |
Fixed #1461: pjsua_call_make_call: assertion failure when rapidly making calls
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3966 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_call.c')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index 72fc6c55..a1f2a3a1 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -255,14 +255,18 @@ static pjsua_call_id alloc_call_id(void) cid<(int)pjsua_var.ua_cfg.max_calls; ++cid) { - if (pjsua_var.calls[cid].inv == NULL) { + if (pjsua_var.calls[cid].inv == NULL && + pjsua_var.calls[cid].async_call.dlg == NULL) + { ++pjsua_var.next_call_id; return cid; } } for (cid=0; cid < pjsua_var.next_call_id; ++cid) { - if (pjsua_var.calls[cid].inv == NULL) { + if (pjsua_var.calls[cid].inv == NULL && + pjsua_var.calls[cid].async_call.dlg == NULL) + { ++pjsua_var.next_call_id; return cid; } |