Example #1
0
        public void ChanleConbi(string callNumbuer1, string callNumbuer2, int dwChlNum1, int dwChlNum2)
        {
            bool line1state;
            bool line2state;

            line1state = Wtmx.StartCall(
                m_hWtmx,                       // デバイス制御ハンドル

                dwChlNum1,                     //チャンネル番号(TODO:空いてるチャンネル番号をチェックして代入する)

                callNumbuer1,                  // 発信先のダイヤル番号

                WAIT_TIME,                     //ダイヤル発呼後から、相手応答されるまでの待機時間を10ms単位で指定します。(0~65535)

                0);                            //発信動作フラグ

            line2state = Wtmx.StartCall(
                m_hWtmx,                   // デバイス制御ハンドル

                dwChlNum2,                 //チャンネル番号(TODO:空いてるチャンネル番号をチェックして代入する)

                callNumbuer2,              // 発信先のダイヤル番号

                WAIT_TIME,                 //ダイヤル発呼後から、相手応答されるまでの待機時間を10ms単位で指定します。(0~65535)

                0);                        //発信動作フラグcallNumbuer1, dwChlNum1)


            int[] dwaChlList = new int[Wtmx.COMBINE_CHL_MAX];

            int[] dwaCmbList = new int[Wtmx.COMBINE_CHL_MAX];


            if (line1state)
            {
                dwaChlList[0] = dwChlNum1;
            }
            else
            {
                Console.WriteLine(callNumbuer1 + "に発信失敗");
                return;
            }

            if (line2state)
            {
                dwaChlList[1] = dwChlNum2;
            }
            else
            {
                Console.WriteLine(callNumbuer2 + "に発信失敗");
                return;
            }


            Wtmx.CombineChannel(m_hWtmx, Wtmx.COMBINE_SET, 1,              //group no :1

                                dwaChlList, 2,

                                dwaCmbList);
        }
Example #2
0
        public void StartCall(String callNumber, int dwChlNum)
        {
            bool bStat;

            // 自動発信開始(通常発信)
            bStat = Wtmx.StartCall(

                m_hWtmx,             // デバイス制御ハンドル

                dwChlNum,            //チャンネル番号(TODO:空いてるチャンネル番号をチェックして代入する)

                callNumber,          // 発信先のダイヤル番号

                WAIT_TIME,           //ダイヤル発呼後から、相手応答されるまでの待機時間を10ms単位で指定します。(0~65535)

                0);                  //発信動作フラグ


            if (bStat)
            {
                // 開始成功
                Console.WriteLine("発信成功");
            }
            else
            {
                Console.WriteLine("発信失敗");
            }
        }
Example #3
0
        //=====================================================================
        // デバイス接続(アタッチ)監視
        //
        // Inp:
        // Out:
        // Ret: true  = アタッチ成功、あるいは既にアタッチ状態
        //      false = 未アタッチ、あるいはアタッチ失敗
        //=====================================================================
        private bool IsAttached()
        {
            // デバイス制御ハンドル作成(コールバック機構無 & 非同期コマンド蓄積チャネル個別方式)
            m_hWtmx = Wtmx.CreateDeviceHandle(0, 0, Wtmx.CMDBUFFER_DIVIDE);

            /// <summary>
            /// デバイスドライバ・ハンドル(Wtmx.INVALID_HANDLE_VALUE = 不正)
            /// <para>■デバイス接続時(IsAttached)に設定、デバイス取外(IsDetached)時にクリア</para>
            /// </summary>
            IntPtr hDevice = Wtmx.INVALID_HANDLE_VALUE;


            /// <summary>
            /// デバイス制御ハンドル情報
            /// <para>■デバイス接続時(IsAttached)に更新</para>
            /// </summary>
            Wtmx.DEVICE_HANDLE_INFO devInfo = new Wtmx.DEVICE_HANDLE_INFO();

            /// <summary>
            /// チャネル情報配列(システム・チャネル、および全通常チャネル数分を確保)
            /// <para>■システム・チャネル番号(インデックス0のnNumber)は、デバイス接続時(IsAttached)に更新</para>
            /// </summary>
            CHL_TBL m_chlInfo = new CHL_TBL(NORMAL_CHL_MAX);


            // デバイス制御ハンドル・アタッチ
            int nStat = Wtmx.AttachDeviceHandle(m_hWtmx);

            bool bStat;

            switch (nStat)
            {
            case Wtmx.ATTACH_CONNECTED:
                //---------------------------------------------------------
                // アタッチ成功(デバイス接続検知)
                //---------------------------------------------------------

                // デバイスドライバ・ハンドル保存
                Wtmx.GetOpenHandle(m_hWtmx, Wtmx.FUNC_DEVICE, 0, out hDevice);

                // デバイス制御ハンドル情報保存
                Wtmx.GetDeviceHandleInfo(m_hWtmx, devInfo);

                // チャネル情報に、システム・チャネル番号保存
                // ※特別なシステムでない限り、システム・チャネル番号は「61」固定
                m_chlInfo[0].nNumber = devInfo.dwSysChlNum;

                string strText = string.Format("==== デバイス接続 VocChl={0}, MovChl={1}",
                                               devInfo.dwMaxChlVoice,
                                               devInfo.dwMaxChlMovie);
                Console.WriteLine(strText);

                bStat = true;
                break;

            case Wtmx.ATTACH_ALREADY:
                //---------------------------------------------------------
                // 既にアタッチ状態
                //---------------------------------------------------------
                bStat = true;
                break;

            case Wtmx.ATTACH_NOTHING:
                //---------------------------------------------------------
                // 未アタッチ(デバイス未接続)
                //---------------------------------------------------------
                bStat = false;
                break;

            default:
                //---------------------------------------------------------
                // アタッチ失敗
                //---------------------------------------------------------
                int nErr = Wtmx.GetLastError();
                strText = string.Format("**** デバイス接続失敗 Stat={0}, Err={1}",
                                        nStat, nErr);
                Console.WriteLine(strText);

                bStat = false;
                break;
            }

            return(bStat);
        }