else
SCPY(param->setup.dialinginfo.context, "lcr");
}
+ memcpy(&p_dialinginfo, ¶m->setup.dialinginfo, sizeof(p_dialinginfo));
+ memcpy(&p_capainfo, ¶m->setup.capainfo, sizeof(p_capainfo));
+ memcpy(&p_callerinfo, ¶m->setup.callerinfo, sizeof(p_callerinfo));
+ memcpy(&p_redirinfo, ¶m->setup.redirinfo, sizeof(p_redirinfo));
+ /* screen */
+ do_screen(1, p_callerinfo.id, sizeof(p_callerinfo.id), &p_callerinfo.ntype, &p_callerinfo.present, p_interface_name);
+ do_screen(1, p_callerinfo.id2, sizeof(p_callerinfo.id2), &p_callerinfo.ntype2, &p_callerinfo.present2, p_interface_name);
+ do_screen(1, p_redirinfo.id, sizeof(p_redirinfo.id), &p_redirinfo.ntype, &p_redirinfo.present, p_interface_name);
+ memcpy(¶m->setup.callerinfo, &p_callerinfo, sizeof(p_callerinfo));
+ memcpy(¶m->setup.redirinfo, &p_redirinfo, sizeof(p_redirinfo));
new_state(PORT_STATE_OUT_SETUP);
break;
break;
case MESSAGE_CONNECT:
+ memcpy(&p_connectinfo, ¶m->connectinfo, sizeof(p_connectinfo));
new_state(PORT_STATE_CONNECT);
break;
switch (message_type) {
case MESSAGE_TRAFFIC:
bridge_tx(param->traffic.data, param->traffic.len);
+ if (p_tone_name[0]) {
+ read_audio(param->traffic.data, param->traffic.len);
+ admin_message_from_lcr(p_r_remote_id, p_r_ref, MESSAGE_TRAFFIC, param);
+ }
break;
case MESSAGE_SETUP:
epointlist_new(epoint->ep_serial);
+ memcpy(&p_dialinginfo, ¶m->setup.dialinginfo, sizeof(p_dialinginfo));
+ memcpy(&p_capainfo, ¶m->setup.capainfo, sizeof(p_capainfo));
+ memcpy(&p_callerinfo, ¶m->setup.callerinfo, sizeof(p_callerinfo));
+ memcpy(&p_redirinfo, ¶m->setup.redirinfo, sizeof(p_redirinfo));
+
new_state(PORT_STATE_IN_SETUP);
break;
break;
case MESSAGE_CONNECT:
+ memcpy(&p_connectinfo, ¶m->connectinfo, sizeof(p_connectinfo));
new_state(PORT_STATE_CONNECT);
break;
&& p_state != PORT_STATE_CONNECT)
return 0;
+ if (p_tone_name[0])
+ return 0;
+
memset(&newparam, 0, sizeof(union parameter));
/* split, if exeeds data size */
while(len) {