0
私はシンプルにしようとしていますclick-to-call app
。私はアスタリスクサーバーをインストールしており、私は無料のを使って電話をかけることができます。しかし、私は私のアプリを使用して何かを送るとき、私は応答がありません。アスタリスクがアプリのリクエストに応答していません
以前はソケットで動作しませんでした。だから、そうかもしれない。
string registerHeader = "REGISTER sip:asteriskip;transport=UDP SIP/2.0\r\n";
string toHeader = "To: <sip:[email protected];transport=UDP>\r\n";
string fromHeader = "From: <sip:[email protected];transport=UDP>\r\n";
string callId = "Call-ID: 1\r\n";
string CSeq = "CSeq: 1 REGISTER\r\n";
string expires = "Expires: 3600\r\n";
string via = "Via: SIP/2.0/UDP myip:myport;branch=z9hG4bK-1\r\n";
string maxF = "Max-Forwards: 70\r\n";
string UA = "User-Agent: MySoftphone\r\n";
string contact = "Contact: <sip:[email protected]:myport;transport=UDP>\r\n";
string contLength = "Content-Length: 0\r\n\r\n";
Socket cl = new Socket(SocketType.Dgram, ProtocolType.Udp);
byte[] registerMsg = Encoding.ASCII.GetBytes(registerHeader + toHeader +
fromHeader + callId + CSeq + expires+via+maxF+UA+contact+contLength);
IPEndPoint server = new IPEndPoint(IPAddress.Parse("asteriskip"), 5060);
cl.Connect(server);
cl.Send(registerMsg);//(registerMsg, registerMsg.Length);
int bytesCount = 0;
do
{
byte[] response = new byte[] { };
cl.Receive(response);//(ref server);
bytesCount = response.Length;
string resp = Encoding.ASCII.GetString(response);
Console.WriteLine(resp);
}
while (bytesCount == 0);
Console.ReadKey();
この要求は、softphone's
とほぼ同じであるwireshark
からそれを取った:
は、ここに私のコードです。しかし、が応答を得て、この要求は応答しません。 CSeq 2を登録する必要があります。私はそれを送ろうとしました。まだ何もありません。私が間違っていなければ、登録の第1部の後に401-Unauthorized
のようなものを受け取ります。