10 Temmuz 2012 Salı

AMI Queue (Kuyruk İşlemleri)


Ami ile kuyruk işlemleri asterisk ile otomatik arayıcı veya ivr uygulamaları geliştirdiğimizde oldukça işimize yarayacak işlevler üstlenirler. Bir çağrı merkezinde genelde operatörlerin belirli gruplara üye olup günün belirli saatlerinde sisteme giriş, çıkış, mola gibi işlemleri yapması istenir. İşte bu anlarda biz daha önceki yazılarımızda bahsettiğimiz çağrı bağlama işlemlerini operatörlere değil kuyruklara yaparız. Böylece Asteriskin ACD (Automatic Call Distrubutor) akıllı çağrı dağıtım nimetlerinden faydalanabiliriz.

Kuyruğa Operatör Eklemek


public void AgentAddQueue(String Exten)
        {
            try
            {
                Asterisk.NET.Manager.Action.QueueAddAction action = new QueueAddAction();
                action.ActionId = "14";
                action.Queue = mQueue;
                action.Interface = "SIP/" + Exten;
                action.MemberName = Exten;
                action.Penalty = 0;
                action.Paused = true;

                Asterisk.NET.Manager.Response.ManagerResponse mr =
                    manager.SendAction(action);
            }
            catch
            {
                //err
            }
        }


Kuyruktan Operatörü Çıkarmak


public void AgentRemoveQueue(String Exten)
        {
            try
            {
                Asterisk.NET.Manager.Action.QueueRemoveAction action = new QueueRemoveAction();
                action.ActionId = "13";
                action.Queue = mQueue;
                action.Interface = "SIP/" + Exten;

                Asterisk.NET.Manager.Response.ManagerResponse mr =
                    manager.SendAction(action);
            }
            catch
            {
               //err
            }
        }


Operatörü Kuyrukta Bekletme


public bool AgentLock(String Queue, string Exten, bool Lock)
        {
            try
            {
                Asterisk.NET.Manager.Action.QueuePauseAction action = new QueuePauseAction();
                action.ActionId = "11";
                action.Queue = Queue;
                action.Interface = "SIP/" + Exten;
                action.Paused = Lock;

                Asterisk.NET.Manager.Response.ManagerResponse mr =
                   manager.SendAction(action);
                if (mr != null)
                    return true;
                else
                    return false;
            }
            catch
            {
                return false;
            }
        }



Operatörün Kuyruktaki Durumu



protected void AgentQueueStatus(string Exten)
        {
            try
            {
                Asterisk.NET.Manager.Action.QueueStatusAction action = new QueueStatusAction();
                action.ActionId = "12";
                action.Member = Exten;
                action.Queue = mQueue;

                Asterisk.NET.Manager.Response.ManagerResponse mr =
                    manager.SendAction(action);
            }
            finally
            {
            }
        }
gibi.....





Hiç yorum yok:

Yorum Gönder