提交 9e9c4378 authored 作者: Brian West's avatar Brian West
......@@ -131,6 +131,7 @@ loggers/mod_syslog
#say/mod_say_de
say/mod_say_en
#say/mod_say_es
#say/mod_say_es_ar
#say/mod_say_fa
#say/mod_say_fr
#say/mod_say_he
......
......@@ -1586,6 +1586,7 @@ AC_CONFIG_FILES([Makefile
src/mod/say/mod_say_de/Makefile
src/mod/say/mod_say_en/Makefile
src/mod/say/mod_say_es/Makefile
src/mod/say/mod_say_es_ar/Makefile
src/mod/say/mod_say_fa/Makefile
src/mod/say/mod_say_fr/Makefile
src/mod/say/mod_say_he/Makefile
......
......@@ -1591,9 +1591,14 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
cseq = sip_cseq_create(nh->nh_home, callsequence, SIP_METHOD_NOTIFY);
nua_handle_bind(nh, &mod_sofia_globals.destroy_private);
from = (char *)switch_channel_get_variable(tech_pvt->channel, "sip_full_to");
to = (char *)switch_channel_get_variable(tech_pvt->channel, "sip_full_from");
if (tech_pvt->sent_last_invite || !tech_pvt->recv_invites) {
from = (char *)switch_channel_get_variable(tech_pvt->channel, "sip_full_from");
to = (char *)switch_channel_get_variable(tech_pvt->channel, "sip_full_to");
} else {
from = (char *)switch_channel_get_variable(tech_pvt->channel, "sip_full_to");
to = (char *)switch_channel_get_variable(tech_pvt->channel, "sip_full_from");
}
nua_info(nh,
TAG_IF(!zstr(tech_pvt->route_uri), NUTAG_PROXY(tech_pvt->route_uri)),
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
......
......@@ -810,6 +810,8 @@ struct private_object {
time_t last_vid_info;
uint32_t keepalive;
uint32_t sent_invites;
uint32_t recv_invites;
uint8_t sent_last_invite;
};
......
......@@ -6696,6 +6696,8 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
case nua_callstate_authenticating:
break;
case nua_callstate_calling:
tech_pvt->sent_last_invite = 1;
tech_pvt->sent_invites++;
break;
case nua_callstate_proceeding:
......@@ -6834,6 +6836,8 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
}
goto done;
case nua_callstate_received:
tech_pvt->recv_invites++;
tech_pvt->sent_last_invite = 0;
if (!sofia_test_flag(tech_pvt, TFLAG_SDP)) {
if (switch_core_session_get_partner(session, &other_session) == SWITCH_STATUS_SUCCESS) {
private_object_t *other_tech_pvt = switch_core_session_get_private(other_session);
......
......@@ -1233,7 +1233,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
switch_channel_get_name(tech_pvt->channel), switch_version_full_human(),
tech_pvt->mparams.local_sdp_str ? tech_pvt->mparams.local_sdp_str : "NO SDP PRESENT\n");
tech_pvt->sent_invites++;
if (switch_channel_get_private(tech_pvt->channel, "t38_options")) {
sofia_clear_flag(tech_pvt, TFLAG_ENABLE_SOA);
......
include $(top_srcdir)/build/modmake.rulesam
MODNAME=mod_say_es_ar
mod_LTLIBRARIES = mod_say_es_ar.la
mod_say_es_AR_la_SOURCES = mod_say_es_ar.c
mod_say_es_AR_la_CFLAGS = $(AM_CFLAGS)
mod_say_es_AR_la_LIBADD = $(switch_builddir)/libfreeswitch.la
mod_say_es_AR_la_LDFLAGS = -avoid-version -module -no-undefined -shared
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论