using System;
using System.Net;
using System.Collections.Generic;
using System.Threading.Tasks;
using SIPSorcery.Net;
using SIPSorcery.SIP;
using SIPSorcery.SIP.App;
using SIPSorcery.Media;
Console.WriteLine("=== TRUNK CALL TEST ===");
// PBX
string pbxIp = "Enter Ip Address 3CX PBX";
int pbxPort = "Enter Sip Port 5060";
// TRANSPORT
var sipTransport = new SIPTransport();
sipTransport.EnableTraceLogs();
sipTransport.AddSIPChannel(
new SIPUDPChannel(new IPEndPoint(IPAddress.Any, 0)));
var userAgent = new SIPUserAgent(sipTransport, null);
var mediaSession = new VoIPMediaSession();
string fromUri = "sip:[email protected]";
string dstUri = $"sip:99999@{pbxIp}:{pbxPort}";
var callDescriptor = new SIPCallDescriptor(
null, // username
null, // password
dstUri,
fromUri,
dstUri,
null,
new List<string>(),
null,
SIPCallDirection.Out,
null,
null,
null
);
Console.WriteLine("Sending INVITE to trunk...");
bool ok = await userAgent.Call(dstUri, null, null, mediaSession);
Console.WriteLine($"CALL RESULT: {ok}");
await Task.Delay(30000);
sipTransport.Shutdown();
Console.WriteLine("DONE");