messagingtoolkit: Supporthttp://platform.twit88.com/http://platform.twit88.com/favicon.ico?15065028342019-08-01T12:52:27Zmessagingtoolkit - messaging made easy
Redmine Support: RE: Nuget issuehttp://platform.twit88.com/boards/2/topics/1466?r=1728#message-17282019-08-01T12:52:27Zdincdavid@digitalmomentum.com.au
<p>Hi Admin,</p>
<p>I seem to be getting the same problem.</p>
<p>I've run the corflags command on MessagingToolkit.Core.dll and it outputted the following</p>
<pre>
icrosoft (R) .NET Framework CorFlags Conversion Tool. Version 4.0.30319.33440
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v4.0.30319
CLR Header: 2.5
PE : PE32+
CorFlags : 0x9
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 1
</pre> Support: RE: IHttpGateway SendSMS timeouthttp://platform.twit88.com/boards/2/topics/1724?r=1727#message-17272018-07-21T03:50:14Zadminadmin@twit88.com
<p>Hi,</p>
<p>Can you share your code snippet here?</p>
<p>Thanks<br />Regards</p> Support: RE: D-Link GSM VoIP Gateway DVG-6001Ghttp://platform.twit88.com/boards/2/topics/1723?r=1726#message-17262018-07-21T03:48:10Zadminadmin@twit88.com
<p>Hi,</p>
<p>What examples you are looking for?</p>
<p>Thanks<br />Regards</p> Support: IHttpGateway SendSMS timeouthttp://platform.twit88.com/boards/2/topics/17242018-07-17T12:25:00Zlukinpedroborges.pt@gmail.com
<p>Hi,</p>
<p>I'm using Message Toolkit to send messages using android phone, but I can't find a way to set a timeout for sending SMS.</p>
<p>If the connection to the phone is lost, SendSMS takes about 100 seconds to execute and return false.<br />Is there a way to shorten this time?</p>
<p>Thanks</p> Support: D-Link GSM VoIP Gateway DVG-6001Ghttp://platform.twit88.com/boards/2/topics/17232018-07-04T15:57:09Zlukinpedroborges.pt@gmail.com
<p>Hi,</p>
<p>I'm using Messaging Toolkit with a GSM modem, but now the client bought a modem that only allow to connect via IP.<br />The specs are here.<br /><a class="external" href="https://www.dlinkmea.com/index.php/product/details?det=NFFwQ2NlMjllc0RaMDlkL1VNQmVCQT09">https://www.dlinkmea.com/index.php/product/details?det=NFFwQ2NlMjllc0RaMDlkL1VNQmVCQT09</a></p>
<p>The only standard that I see that it supports is USSD, but how can I connect to it via IP using the Toolkit.<br />I've made some tests using the Android app and it works great. I took a look at the Demo-Core and it helped me, but for USSD i don't see any example.</p>
<p>Regards,<br />Pedro</p> Support: RE: Call Managementhttp://platform.twit88.com/boards/2/topics/1718?r=1722#message-17222018-06-28T10:23:24Zzl
<p>Sorry, my fault. COLP was turned on for my device although my documentation said it would be turned off by default. So I had to disable it manually. Now Dial() is no more blocking</p> Support: RE: Call Managementhttp://platform.twit88.com/boards/2/topics/1718?r=1721#message-17212018-06-27T17:23:26Zzl
<p>Hey, I have another problem. It seems, that the Dial(...) method blocks the mobile gateway instance until the other party has answered the call. This leads to 2 major problems:</p>
<ol>
<li>The CallDialled Event is first fired when the call has been answered</li>
<li>If the other party does not answer the call I have no more control about the gateway (I cant hangup because Dial() is blocking)</li>
</ol>
<p>Is this the normal behaviour?</p> Support: RE: Call Managementhttp://platform.twit88.com/boards/2/topics/1718?r=1720#message-17202018-06-25T11:39:33Zzl
<p>Hey,<br />thanks for the patch. This seems to work, so many thanks.</p>
<p>Best regards<br />Felix</p> Support: RE: Call Managementhttp://platform.twit88.com/boards/2/topics/1718?r=1719#message-17192018-06-22T15:39:03Zadminadmin@twit88.com
<p>Hi,</p>
<p>Try with the attached patch, and use GetCurrentCalls to retrieve the active calls.</p>
<p>Thanks<br />Regards<br />admin</p> Support: Call Managementhttp://platform.twit88.com/boards/2/topics/17182018-06-11T12:50:22Zzl
<p>Hi,<br />I have a few questions regarding the call management. When I start a call there is the event "CallDialled". Is there also an event when the call has been answered? Or is there any other way to check this? And is there any way to check whether an outgoing call has been ended after it has been answered? And a third question: Although I have one active call the "GetCurrentCalls()" function always returns 0 (I tried it using the demo application).</p>
<p>Best regards<br />Felix</p> Support: RE: Error: An entry with the same key already exists. when parallel connect modemhttp://platform.twit88.com/boards/2/topics/1301?r=1717#message-17172018-06-07T11:46:39Zzl
<p>Crazy, seems to work after disabling the watchdog...</p> Support: RE: Error: An entry with the same key already exists. when parallel connect modemhttp://platform.twit88.com/boards/2/topics/1301?r=1716#message-17162018-06-07T11:38:59Zzl
<p>Hi,<br />I'm having the same problem as stated above. I'm using the latest library version from NuGet (1.8.3) on a x64 windows 10. I'm always getting the error "An entry with the same key already exists.":</p>
<pre>
System.ArgumentException
HResult=0x80070057
Nachricht = Ein Eintrag mit dem gleichen Schlüssel ist bereits vorhanden.
Quelle = System
Stapelüberwachung:
at System.Collections.Specialized.ListDictionary.Add(Object key, Object value)
at MessagingToolkit.Core.Log.Logger.Init(LogProfile logprofile)
at MessagingToolkit.Core.Log.Logger.UseSensibleDefaults(String logFileName, String logLocation, LogLevel logLevel, LogNameFormat logNameFormat)
at MessagingToolkit.Core.Mobile.BaseMobileGateway`1.PerformSetup()
at MessagingToolkit.Core.Mobile.MobileGatewayFactory.Find()
at MessagingToolkit.Core.MessageGateway`2.Find(C config)
at GatewayDiscoveryCmd.Program.GetGatewayInfo(String portName) in c:\users\felix\source\repos\GatewayDiscoveryCmd\GatewayDiscoveryCmd\Program.cs:line 68
at GatewayDiscoveryCmd.Program.<>c__DisplayClass1_0.<Main>b__0() in c:\users\felix\source\repos\GatewayDiscoveryCmd\GatewayDiscoveryCmd\Program.cs:line 31
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
</pre>
<p>Here is sample exmple code (console application) to reproduce the issue.</p>
<pre><code class="java syntaxhl"><span class="CodeRay">using <span class="predefined-type">System</span>;
using <span class="predefined-type">System</span>.Collections.Generic;
using <span class="predefined-type">System</span>.Threading.Tasks;
using <span class="predefined-type">System</span>.IO.Ports;
using <span class="predefined-type">System</span>.Threading;
using MessagingToolkit.Core;
using MessagingToolkit.Core.Mobile;
namespace GatewayDiscoveryCmd
{
<span class="type">class</span> <span class="class">Program</span>
{
<span class="directive">public</span> struct GatewayInfo
{
<span class="directive">public</span> <span class="predefined-type">String</span> <span class="predefined-type">Port</span> { get; set; }
<span class="directive">public</span> <span class="predefined-type">String</span> DeviceModel { get; set; }
<span class="directive">public</span> <span class="predefined-type">String</span> DeviceManufacturer { get; set; }
}
<span class="directive">static</span> <span class="type">void</span> Main(string<span class="type">[]</span> args)
{
string<span class="type">[]</span> ports = SerialPort.GetPortNames();
<span class="predefined-type">List</span><Task<GatewayInfo>> discoveryTasks = <span class="keyword">new</span> <span class="predefined-type">List</span><Task<GatewayInfo>>();
Console.WriteLine(<span class="predefined-type">String</span>.Format(<span class="string"><span class="delimiter">"</span><span class="content">Scanning {0} ports ...</span><span class="delimiter">"</span></span>, ports.Length));
foreach (string port in ports)
{
Task<GatewayInfo> task = Task<GatewayInfo>.Factory.StartNew(() => GetGatewayInfo(port));
discoveryTasks.Add(task);
}
Task.WaitAll(discoveryTasks.ToArray());
foreach (Task<GatewayInfo> task in discoveryTasks)
{
GatewayInfo gatewayInfo = task.Result;
Console.WriteLine(<span class="predefined-type">String</span>.Format(<span class="string"><span class="delimiter">"</span><span class="content">Gateway at port {0} is model {1} by {2}</span><span class="delimiter">"</span></span>, gatewayInfo.Port, gatewayInfo.DeviceModel, gatewayInfo.DeviceManufacturer));
}
}
<span class="directive">private</span> <span class="directive">static</span> GatewayInfo GetGatewayInfo(string portName)
{
<span class="comment">// TODO Remove this statement if everything goes well, its only for debugging</span>
Console.WriteLine(<span class="string"><span class="delimiter">"</span><span class="content">Task created at {0} on thread #{1}.</span><span class="delimiter">"</span></span>, DateTime.Now.Ticks, <span class="predefined-type">Thread</span>.CurrentThread.ManagedThreadId);
<span class="comment">// Predefine the model and manufacturer</span>
string deviceModel = <span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>;
string deviceManufacturer = <span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>;
MessageGateway<IMobileGateway, MobileGatewayConfiguration> messageGateway = MessageGateway<IMobileGateway, MobileGatewayConfiguration>.NewInstance();
MobileGatewayConfiguration mobileGatewayConfiguration = MobileGatewayConfiguration.NewInstance();
mobileGatewayConfiguration.GatewayId = portName;
mobileGatewayConfiguration.PortName = portName;
mobileGatewayConfiguration.BaudRate = PortBaudRate.BitsPerSecond115200;
mobileGatewayConfiguration.DataBits = PortDataBits.Eight;
mobileGatewayConfiguration.StopBits = PortStopBits.One;
mobileGatewayConfiguration.DtrEnable = <span class="predefined-constant">true</span>;
mobileGatewayConfiguration.RtsEnable = <span class="predefined-constant">true</span>;
mobileGatewayConfiguration.Parity = PortParity.None;
mobileGatewayConfiguration.Handshake = PortHandshake.None;
mobileGatewayConfiguration.DisablePinCheck = <span class="predefined-constant">true</span>;
<span class="comment">// Find the mobile gateway according to the configuration</span>
IMobileGateway mobileGateway = messageGateway.Find(mobileGatewayConfiguration);
<span class="keyword">if</span> (<span class="predefined-constant">null</span> == mobileGateway)
{
<span class="keyword">throw</span> <span class="keyword">new</span> <span class="exception">Exception</span>(<span class="string"><span class="delimiter">"</span><span class="content">The mobile gateway could not be initialized! Please check the log files!</span><span class="delimiter">"</span></span>);
}
<span class="comment">// Get the device information</span>
deviceModel = mobileGateway.DeviceInformation.Model;
deviceManufacturer = mobileGateway.DeviceInformation.Manufacturer;
<span class="comment">// Disconnect the mobile gateway</span>
mobileGateway.Disconnect();
mobileGateway.Dispose();
mobileGateway = <span class="predefined-constant">null</span>;
<span class="keyword">return</span> <span class="keyword">new</span> GatewayInfo { <span class="predefined-type">Port</span> = portName, DeviceModel = deviceModel, DeviceManufacturer = deviceManufacturer };
}
}
}
</span></code></pre> Support: RE: Branded SMShttp://platform.twit88.com/boards/2/topics/1714?r=1715#message-17152017-10-29T11:22:55Zadminadmin@twit88.com
<p>Hi,</p>
<p>This is not possible for GSM modem as it is not allowed by the service provider.</p>
<p>To do this you need to use SMPP protocol and for SMPP you need to connect to the telco service provider server.</p>
<p>Thanks<br />Regards</p> Support: Branded SMShttp://platform.twit88.com/boards/2/topics/17142017-10-29T11:22:33Zadminadmin@twit88.com
<p>Newbie to this SMS thing!</p>
<p>Does the component supports sending branded SMS ?</p>
<p>By branded I mean that receiver is shown sender's Brand or Business Name instead of cell# or short code.</p>
<p>Guide in this regard will be highly appreciated.</p> Support: tryin to decode QR imagehttp://platform.twit88.com/boards/2/topics/17132017-09-19T09:58:19Zadminadmin@twit88.com
<p>Hello,</p>
<p>I am not a developer<br />I am trying to your application code in C# but cant go through it<br />I am looking to decode attached image</p>
<p>Its generated from a particular online booking<br />And I cant decode it<br />Can you help</p>
<p>With Best Regards,</p>