mirror of https://github.com/sipwise/kamailio.git
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.
133 lines
3.2 KiB
133 lines
3.2 KiB
#
|
|
# $Id$
|
|
#
|
|
# bat.iptel.org (sms gateway) real world configuration
|
|
#
|
|
|
|
# ----------- 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=5070
|
|
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"
|
|
|
|
# ----------------- 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 )
|
|
|
|
|
|
# ------------------------- request routing logic -------------------
|
|
|
|
# main routing logic
|
|
|
|
route{
|
|
|
|
if (len_gt( max_len )) {
|
|
sl_send_reply("513", "Riesengross -- Message too large");
|
|
break;
|
|
};
|
|
|
|
# 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;
|
|
};
|
|
|
|
# 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();
|
|
}
|
|
|