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.
131 lines
2.9 KiB
131 lines
2.9 KiB
|
|
import java.lang.*;
|
|
import java.io.*;
|
|
|
|
import org.siprouter.*;
|
|
import org.siprouter.NativeInterface.*;
|
|
|
|
public class Kamailio extends NativeMethods
|
|
{
|
|
static
|
|
{
|
|
System.load("/opt/kamailio/lib/kamailio/modules/app_java.so");
|
|
}
|
|
|
|
/* Constructor. Do not remove !!! */
|
|
public Kamailio()
|
|
{
|
|
}
|
|
|
|
|
|
public int child_init(int rank)
|
|
{
|
|
switch (rank)
|
|
{
|
|
case Ranks.PROC_MAIN:
|
|
LM_INFO("We're at PROC_MAIN\n");
|
|
break;
|
|
case Ranks.PROC_TIMER:
|
|
LM_INFO("We're at PROC_TIMER\n");
|
|
break;
|
|
case Ranks.PROC_RPC:
|
|
LM_INFO("We're at PROC_RPC/PROC_FIFO\n");
|
|
break;
|
|
case Ranks.PROC_TCP_MAIN:
|
|
LM_INFO("We're at PROC_TCP_MAIN\n");
|
|
break;
|
|
case Ranks.PROC_UNIXSOCK:
|
|
LM_INFO("We're at PROC_UNIXSOCK\n");
|
|
break;
|
|
case Ranks.PROC_ATTENDANT:
|
|
LM_INFO("We're at PROC_ATTENDANT\n");
|
|
break;
|
|
case Ranks.PROC_INIT:
|
|
LM_INFO("We're at PROC_INIT\n");
|
|
break;
|
|
case Ranks.PROC_NOCHLDINIT:
|
|
LM_INFO("We're at PROC_NOCHLDINIT/PROC_MIN\n");
|
|
break;
|
|
case Ranks.PROC_SIPINIT:
|
|
LM_INFO("We're at PROC_SIPINIT\n");
|
|
break;
|
|
case Ranks.PROC_SIPRPC:
|
|
LM_INFO("We're at PROC_SIPRPC\n");
|
|
break;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
public int TestMethod()
|
|
{
|
|
|
|
LM_INFO(String.format("Msg Type: %s\n", SipMsg.getMsgType()));
|
|
|
|
IPPair src = SipMsg.getSrcAddress();
|
|
if (src != null)
|
|
{
|
|
LM_INFO(String.format("src address=%s, src port=%d\n", src.ip, src.port));
|
|
}
|
|
else
|
|
{
|
|
LM_ERR("IPPair src is null!");
|
|
}
|
|
|
|
IPPair dst = SipMsg.getDstAddress();
|
|
if (dst != null)
|
|
{
|
|
LM_INFO(String.format("dst address=%s, dst port=%d\n", dst.ip, dst.port));
|
|
}
|
|
else
|
|
{
|
|
LM_ERR("IPPair dst is null!");
|
|
}
|
|
|
|
LM_INFO(String.format("buffer:\n%s\n", SipMsg.getBuffer().trim()));
|
|
|
|
SipMsg msg = SipMsg.ParseSipMsg();
|
|
if (msg != null)
|
|
{
|
|
LM_INFO("msg:\n");
|
|
LM_INFO(String.format("\tid=%d\n", msg.id));
|
|
LM_INFO(String.format("\tpid=%d\n", msg.pid));
|
|
LM_INFO(String.format("\teoh='%s'\n", msg.eoh));
|
|
LM_INFO(String.format("\tunparsed='%s'\n", msg.unparsed));
|
|
LM_INFO(String.format("\tbuf='%s'\n", msg.buf));
|
|
LM_INFO(String.format("\tlen=%d\n", msg.len));
|
|
LM_INFO(String.format("\tnew_uri='%s'\n", msg.new_uri));
|
|
LM_INFO(String.format("\tdst_uri='%s'\n", msg.dst_uri));
|
|
LM_INFO(String.format("\tparsed_uri_ok=%d\n", msg.parsed_uri_ok));
|
|
LM_INFO(String.format("\tparsed_orig_ruri_ok=%d\n", msg.parsed_orig_ruri_ok));
|
|
LM_INFO(String.format("\tadd_to_branch_s='%s'\n", msg.add_to_branch_s));
|
|
LM_INFO(String.format("\tadd_to_branch_len=%d\n", msg.add_to_branch_len));
|
|
LM_INFO(String.format("\thash_index=%d\n", msg.hash_index));
|
|
LM_INFO(String.format("\tmsg_flags=%d\n", msg.msg_flags));
|
|
LM_INFO(String.format("\tset_global_address='%s'\n", msg.set_global_address));
|
|
LM_INFO(String.format("\tset_global_port='%s'\n", msg.set_global_port));
|
|
}
|
|
else
|
|
{
|
|
LM_ERR("SipMsg msg is null!\n");
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|