Skip to content

Instantly share code, notes, and snippets.

@siniypin
siniypin / gist:08aba26ffea06915136d
Created February 15, 2015 00:27
Create Wav player and dispose after it reaches end of the file
public class PlayFileCommand : ICommand
{
private readonly ISipUserAgent _userAgent;
private readonly IContainer _container;
public PlayFileCommand(ISipUserAgent userAgent, IContainer container)
{
_userAgent = userAgent;
_container = container;
}
public class PlayFileCommand : ICommand
{
private readonly ISipUserAgent _userAgent;
private readonly IContainer _container;
public PlayFileCommand(ISipUserAgent userAgent, IContainer container)
{
_userAgent = userAgent;
_container = container;
}
@siniypin
siniypin / createUaWithAccounts.cs
Created July 8, 2013 19:21
Creating sip preconfigured and dynamic sip accounts.
public class Class1
{
public class MyConfigurator : IConfigurationProvider
{
public void Configure(IConfigurationContext context)
{
var registrar = "sipgate.de";
var accountId = new SipUriBuilder().AppendDomain("sipgate.de").AppendExtension("me").ToString();
var proxy = "proxy.live.sipgate.de";
context.RegisterAccounts(new[]
@siniypin
siniypin / gist:7504504
Created November 16, 2013 19:51
Transferring active call to another destination
public class TransferCommand : ICommand
{
private ISipUserAgent _userAgent;
private TransferArguments _arguments;
public TransferCommand(ISipUserAgent userAgent, TransferArguments transferArguments)
{
_userAgent = userAgent;
_arguments = transferArguments;
}
@siniypin
siniypin / gist:7848648
Created December 7, 2013 21:01
Subscribing to NAT detected event
var ua = Configure.Pjsip4Net().FromConfig().Build().Start();
ua.ImManager.NatDetected += OnNatDetected;
@siniypin
siniypin / App.config
Created December 8, 2013 17:02
Plugging log4net framework
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="sipua" type="pjsip4net.Configuration.SipUserAgentSettingsSection, pjsip4net, Culture=neutral, PublicKeyToken=null"/>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/>
</configSections>
<sipua>
@siniypin
siniypin / gist:7860351
Created December 8, 2013 17:10
Binding to concrete pjsip version
Configure.Pjsip4Net().WithVersion_1_4().Build().Start();
@siniypin
siniypin / Program.cs
Created December 8, 2013 17:29
Plugging Castle Windsor container
var container = new WindsorContainer();
var ua = Configure.Pjsip4Net().With_CastleContainer(container).Build().Start();
public static void Main(string[] args)
{
//Initialization skipped
ua.CallManager.IncomingCall += CallManager_IncomingCall;
ua.CallManager.Ring += CallManager_Ring;
//Loop is skipped
static void CallManager_Ring(object sender, RingEventArgs e)
{
System.Console.WriteLine("Call {0} ring event.", e.CallId);
@siniypin
siniypin / tcp_disconnect_hack.cs
Last active March 9, 2016 16:29
How do you tell a server went down
static void ua_Log(object sender, LogEventArgs e)
{
if (e.Data.Contains("TCP transport destroyed with reason 70016: End of file (PJ_EEOF)"))
{
System.Console.WriteLine("SNAP, SERVER WENT DOWN");
ua.AccountManager.Accounts.All(x => x.Unregister());
}
}