在类库项目中创建 AGIScript

问题描述 投票:0回答:0

我有一个简单的项目创建

c#
.Net Core 6.0

我用

AGIScript
创建了一个
Asternet
类,并从
asterisk
服务器接收数据。

它运行良好,只要两者都在同一个项目中(

exe
项目)。

public void ListenToAgi()
{
    var agi = new AsteriskFastAGI();
    try
    {
        agi.MappingStrategy = new GeneralMappingStrategy(new List<ScriptMapping>()
        {
            new ScriptMapping() {
            ScriptClass = "HI.agiSample.MyAgi",
            ScriptName = "getvariable"
            }
        });
        agi.Start();
    }
    catch (Exception ex)
    {
    }
}

MyAgi
类是:

using AsterNET.NetStandard.FastAGI;

namespace HI.agiSample
{
    public class MyAgi : AGIScript
    {
        public override void Service(AGIRequest request, AGIChannel channel)
        {
            try
            {
                string result = GetVariable("result");
            }
            catch (Exception e)
            {
            }
        }
    }
}

拨号规则代码是:

exten => 110,1, NoOp(*************** agi-test ******************);
same => n,set(result=123);
same => n,agi(agi://localhost/getvariable);
same => n,Hangup();

我的问题是:

当我将

MyAgi
课程移动到
ClassLibrary
项目时,它无法工作和收听,但是两个课程都在同一个项目中 (
exe
),它运作良好。

这是星号日志:

VERBOSE “没有为 URL 'agi://my ip/getvariable' 配置脚本 (脚本'getvariable')“

注意事项:

  1. namespace
    在两个项目中都是一样的,只有
    assembly
    名字不同。

  2. Project A
    windows desktop
    应用程序,
    Project B
    ClassLibrary
    .

有人能帮帮我吗?

c# asterisk agi dialplan asternet
© www.soinside.com 2019 - 2024. All rights reserved.