diff --git addons/chan_ooh323.c addons/chan_ooh323.c index 6268ad0..78d44b4 100644 --- addons/chan_ooh323.c +++ addons/chan_ooh323.c @@ -225,6 +225,7 @@ struct ooh323_user{ int earlydirect; int g729onlyA; int aniasdni; + OOBOOL sendProgress; struct ooh323_user *next; }; @@ -329,6 +330,7 @@ static int gTRCLVL = OOTRCLVLERR; static int gRTDRCount = 0, gRTDRInterval = 0; static int gNat = FALSE; static int gANIasDNI = 0; +OOBOOL gSendProgress = TRUE; static int t35countrycode = 0; static int t35extensions = 0; @@ -553,6 +555,7 @@ static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken) ast_format_cap_append_from_cap(pvt->cap, gCap, AST_MEDIA_TYPE_UNKNOWN); pvt->aniasdni = gANIasDNI; + pvt->progsent = !gSendProgress; ast_mutex_unlock(&pvt->lock); /* Add to interface list */ @@ -1893,6 +1896,7 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg) p->faststart = user->faststart; p->directrtp = user->directrtp; p->earlydirect = user->earlydirect; + p->progsent = !user->sendProgress; if (p->faststart) OO_SETFLAG(call->flags, OO_M_FASTSTART); @@ -2458,6 +2462,8 @@ static struct ooh323_user *build_user(const char *name, struct ast_variable *v) user->t38support = T38_ENABLED; } else if (!strcasecmp(v->name, "aniasdni")) { user->aniasdni = ast_true(v->value); + } else if (!strcasecmp(v->name, "send_progress")) { + user->sendProgress = ast_true(v->value); } v = v->next; } @@ -3075,6 +3081,8 @@ int reload_config(int reload) ooH323EpSetTraceLevel(gTRCLVL); } else if (!strcasecmp(v->name, "aniasdni")) { gANIasDNI = ast_true(v->value); + } else if (!strcasecmp(v->name, "send_progress")) { + gSendProgress = ast_true(v->value); } v = v->next; }