You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/misc/examples/obsoleted/imgw.cfg

177 lines
4.8 KiB

### ----- IM Gateway [SMS+Jabber] config file for 'bat.iptel.org' ----
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
#fork=no
log_stderror=no # (cmd line: -E)
#log_stderror=yes # (cmd line: -E)
check_via=yes # (cmd. line: -v)
dns=on # (cmd. line: -r)
rev_dns=yes # (cmd. line: -R)
port=5080
children=2
# advertise IP address in Via (as opposed to advertising DNS name
# which is annoying for downstream servers and some phones can
# not handle DNS at all)
listen=195.37.77.100
# ------------------ module loading ----------------------------------
loadmodule "../sip_router/modules/sl/sl.so"
loadmodule "../sip_router/modules/print/print.so"
loadmodule "../sip_router/modules/tm/tm.so"
loadmodule "../sip_router/modules/maxfwd/maxfwd.so"
loadmodule "../sip_router/modules/sms/sms.so"
loadmodule "../sip_router/modules/textops/textops.so"
loadmodule "../sip_router/modules/mysql/mysql.so"
loadmodule "../sip_router/modules/jabber/jabber.so"
# ----------------- setting module-specific parameters ---------------
# -- sms params --
modparam("sms", "modems", "Falcom [d=/dev/ttyS0;b=9600;p=9254;m=new;l=10;r=2]")
modparam("sms", "networks", "D1[c=491710765000;m=10]")
modparam("sms", "links", "Falcom[D1]")
modparam("sms", "domain", "iptel.org")
modparam("sms", "max_sms_parts", 3)
modparam("sms", "use_contact", 1)
# -- tm params --
modparam("tm", "fr_timer", 10 )
modparam("tm", "fr_inv_timer", 10 )
modparam("tm", "wt_timer", 10 )
# -- jabber params --
modparam("jabber", "db_url", "sql://s2jgw:47s2jgw11@127.0.0.1/sip_jab")
modparam("jabber", "jaddress", "bat.iptel.org")
modparam("jabber", "jport", 5222)
modparam("jabber", "workers", 2)
modparam("jabber", "max_jobs", 10)
modparam("jabber", "delay_time", 15)
modparam("jabber", "cache_time", 1800)
# ------------------------- request routing logic -------------------
# main routing logic
route{
# filter too old messages
log("LOG: Checking maxfwd\n");
if (!mf_process_maxfwd_header("10")) {
log("LOG: Too many hops\n");
sl_send_reply("483", "Too Many Hops");
break;
};
if ((search("To:.*@icq\.iptel\.org")) || (search("To:.*@icq\.bat\.iptel\.org"))
|| (search("To:.*@msn\.iptel\.org")) || (search("To:.*@msn\.bat\.iptel\.org"))
|| (search("To:.*@aim\.iptel\.org")) || (search("To:.*@aim\.bat\.iptel\.org"))
|| (search("To:.*@yahoo\.iptel\.org")) || (search("To:.*@yahoo\.bat\.iptel\.org")))
{
### ----- JABBER GATEWAY ------
if (! t_newtran())
{
# retransmit whatever we have
# it's useless to do any retransmission, because we haven't
# sent any statefull reply. (bogdan)
#t_retransmit_reply();
break;
} else {
if (method=="MESSAGE")
{
log("MESSAGE received -> sending as JABBER\n");
if (jab_send_message())
{
sl_send_reply("202", "Accepted");
}else{
sl_send_reply("502", "Bad gateway");
};
}else{
log("NON_Message request received for JABBER gateway->dropt!\n");
sl_send_reply("501", "Not implemented");
};
# transaction conclude it -- junk it now (it will
# stay there until WAIT timer hits)
t_release();
};
t_unref();
} else {
### ----- SMS GATEWAY ------
if (len_gt( max_len )) {
sl_send_reply("513", "Riesengross -- Message too large");
break;
};
# accept only req coming from iptel.org
if (!src_ip==195.37.77.101 |
!( uri=~"iptel.org" | uri=~"195\.37\.77\.100" ))
{
log("SER:Forbidden request: wrong src_ip or req_uri\n");
sl_send_reply("403", "Forbidden");
break;
};
#accept only MESSAGE requests
if (!method=="MESSAGE")
{
sl_send_reply("501", "Not Implemented");
break;
};
# SMS expects the numbers as follows <int> <area> <nr>
# align numbering to it
/*
if (uri=~"sip:001" ) {
strip(2);
prefix("49");
} else if (uri=~"sip:\+491") {
strip(1);
} else if (uri=~"sip:000491") {
strip(3);
} else {
sl_send_reply("403", "SMS only to German 01* networks");
break;
};
*/
if (! t_newtran())
{
# retransmit whatever we have
# it's useless to do any retransmission, because we haven't
# sent any statefull reply. (bogdan)
#t_retransmit_reply();
break;
} else {
# do what you want to do
if (sms_send_msg_to_net("D1"))
{
# for sending replies, we woun't use the statefull
# function because it is not able to add the Contact
# header (in fact to add any rpl_lump :-( )
# things went well, send ok upstream
if (!sl_send_reply("202", "yes sir, SMS sent over"))
{
# if replying failed, retry statelessly
sl_reply_error();
};
} else {
if (!sl_send_reply("502", "Bad gateway - SMS error"))
{
# if replying failed, retry statelessly
sl_reply_error();
};
};
# transaction conclude it -- junk it now (it will
# stay there until WAIT timer hits)
t_release();
};
t_unref();
};
}