Hi Dennis, the callIdentity provided isn't long enough for a call id and thus the typecast fails here: CallSignalSocket::OnH450CallTransfer: const PASN_NumericString & callIdentifier = ctInitiateArg.m_callIdentity; (const H225_CallIdentifier&)callIdentifier Simon, could you please put in a check for this ? Thanks! Jan Denis Kochmashev "Enforta" wrote: > PTLib: 2.0.1 > H323Plus: 1.20-beta3 > GNU GK: 2.2.7 > > Tried to transfer a call from non-H.450 endpoint using PacPhone and GNU GK > crashed. > > Last log lines (full log attached): > > 2008/06/05 20:02:38.780 4 ProxyChannel.cxx(2413) H450 Received > supplementary service PDU: > { > serviceApdu = rosApdus 1 entries { > [0]=invoke { > invokeId = 1 > opcode = local 9 > argument = 6 octets { > 00 01 01 00 43 30 ....C0 > } > } > } > } > 2008/06/05 20:02:38.781 0 assert.cxx(174) PWLib Assertion > fail: Invalid cast to non-descendant class, file h225_1.cxx, line 3096 > > Gdb shows the following: > > mmsvc@coll2:~/log> gdb -c core.15554 ../bin/gnugk-debug > GNU gdb Red Hat Linux (6.3.0.0-1.132.EL4rh) > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db > library "/lib/tls/libthread_db.so.1". > > > warning: core file may not match specified executable file. > Core was generated by `/usr/local/mmsvc/bin/gnugk -tttt -u mmsvc -c > /usr/local/mmsvc/etc/gk.ini -o /us'. > Program terminated with signal 11, Segmentation fault. > Reading symbols from > /usr/local/mmsvc/lib/libh323_linux_x86_d.so.1.20-beta3...done. > Loaded symbols for /usr/local/mmsvc/lib/libh323_linux_x86_d.so.1.20-beta3 > Reading symbols from /usr/local/mmsvc/lib/libpt_linux_x86_d.so.2.0.1...done. > Loaded symbols for /usr/local/mmsvc/lib/libpt_linux_x86_d.so.2.0.1 > Reading symbols from /usr/lib/libldap-2.2.so.7...done. > Loaded symbols for /usr/lib/libldap-2.2.so.7 > Reading symbols from /usr/lib/liblber-2.2.so.7...done. > Loaded symbols for /usr/lib/liblber-2.2.so.7 > Reading symbols from /usr/lib/libldap_r-2.2.so.7...done. > Loaded symbols for /usr/lib/libldap_r-2.2.so.7 > Reading symbols from /lib/tls/libpthread.so.0...done. > Loaded symbols for /lib/tls/libpthread.so.0 > Reading symbols from /usr/lib/libsasl2.so.2...done. > Loaded symbols for /usr/lib/libsasl2.so.2 > Reading symbols from /lib/libssl.so.4...done. > Loaded symbols for /lib/libssl.so.4 > Reading symbols from /lib/libcrypto.so.4...done. > Loaded symbols for /lib/libcrypto.so.4 > Reading symbols from /usr/lib/libexpat.so.0...done. > Loaded symbols for /usr/lib/libexpat.so.0 > Reading symbols from /lib/libresolv.so.2...done. > Loaded symbols for /lib/libresolv.so.2 > Reading symbols from /lib/libdl.so.2...done. > Loaded symbols for /lib/libdl.so.2 > Reading symbols from /usr/lib/libstdc++.so.6...done. > Loaded symbols for /usr/lib/libstdc++.so.6 > Reading symbols from /lib/tls/libm.so.6...done. > Loaded symbols for /lib/tls/libm.so.6 > Reading symbols from /lib/libgcc_s.so.1...done. > Loaded symbols for /lib/libgcc_s.so.1 > Reading symbols from /lib/tls/libc.so.6...done. > Loaded symbols for /lib/tls/libc.so.6 > Reading symbols from /lib/ld-linux.so.2...done. > Loaded symbols for /lib/ld-linux.so.2 > Reading symbols from /lib/libcrypt.so.1...done. > Loaded symbols for /lib/libcrypt.so.1 > Reading symbols from /usr/lib/libgssapi_krb5.so.2...done. > Loaded symbols for /usr/lib/libgssapi_krb5.so.2 > Reading symbols from /usr/lib/libkrb5.so.3...done. > Loaded symbols for /usr/lib/libkrb5.so.3 > Reading symbols from /lib/libcom_err.so.2...done. > Loaded symbols for /lib/libcom_err.so.2 > Reading symbols from /usr/lib/libk5crypto.so.3...done. > Loaded symbols for /usr/lib/libk5crypto.so.3 > Reading symbols from /usr/lib/libz.so.1...done. > Loaded symbols for /usr/lib/libz.so.1 > Reading symbols from > /usr/local/mmsvc/lib/ptlib/devices/videoinput/v4l2_pwplugin.so...done. > Loaded symbols for > /usr/local/mmsvc/lib/ptlib/devices/videoinput/v4l2_pwplugin.so > Reading symbols from > /usr/local/mmsvc/lib/ptlib/devices/videoinput/v4l_pwplugin.so...done. > Loaded symbols for > /usr/local/mmsvc/lib/ptlib/devices/videoinput/v4l_pwplugin.so > Reading symbols from /lib/libnss_files.so.2...done. > Loaded symbols for /lib/libnss_files.so.2 > #0 0x00f4b35b in __dynamic_cast () from /usr/lib/libstdc++.so.6 > (gdb) bt full > #0 0x00f4b35b in __dynamic_cast () from /usr/lib/libstdc++.so.6 > No symbol table info available. > #1 0x00d56e82 in PASN_OctetString::Compare (this=0x9d8be60, > obj=@0xb7eccdb0) at ../../ptclib/asner.cxx:1420 > other = (const PASN_OctetString &) @0x0: {<PASN_ConstrainedObject> = > {<PASN_Object> = {<PObject> = { > _vptr.PObject = 0x0}, extendable = 0, tagClass = > PASN_Object::UniversalTagClass, tag = 0}, > constraint = PASN_Object::Unconstrained, lowerLimit = 0, upperLimit = > 0}, > value = {<PBaseArray<BYTE>> = {<PAbstractArray> = {<PContainer> = > {<PObject> = {_vptr.PObject = 0x0}, reference = 0x0}, > elementSize = 0, theArray = 0x0, allocatedDynamically = 0}, <No data > fields>}, <No data fields>}} > #2 0x0044a14d in H225_CallIdentifier::Compare (this=0x9d8bdd0, > obj=@0xb7eccd20) at h225_1.cxx:3102 > other = (const H225_CallIdentifier &) @0xb7eccd20: {<PASN_Sequence> > = {<PASN_Object> = {<PObject> = { > _vptr.PObject = 0x878768}, extendable = 0, tagClass = > PASN_Object::UniversalTagClass, tag = 18}, > fields = {<PArrayObjects> = {<PCollection> = {<PContainer> = {<PObject> > = {_vptr.PObject = 0x2}, > reference = 0x0}, <No data fields>}, theArray = 0x4}, <No data > fields>}, > optionMap = {<PASN_ConstrainedObject> = {<PASN_Object> = {<PObject> = > {_vptr.PObject = 0xea3e08}, > extendable = 165201232, tagClass = > PASN_Object::ApplicationTagClass, tag = 165201216}, > constraint = PASN_Object::PartiallyConstrained, lowerLimit = > 135722768, upperLimit = 165201248}, totalBits = 1, > bitData = {<PBaseArray<BYTE>> = {<PAbstractArray> = {<PContainer> = > {<PObject> = {_vptr.PObject = 0x9d8c570}, > reference = 0x1}, elementSize = 15117609, theArray = 0xb "", > allocatedDynamically = 4}, <No data fields>}, <No data > fields>}}, knownExtensions = 4, totalExtensions = 4, > extensionMap = {<PASN_ConstrainedObject> = {<PASN_Object> = {<PObject> = > {_vptr.PObject = 0x8171d10}, extendable = 1, > tagClass = PASN_Object::UniversalTagClass, tag = 16}, constraint = > 135645320, lowerLimit = 165201280, > upperLimit = 165201296}, totalBits = 135734880, > bitData = {<PBaseArray<BYTE>> = {<PAbstractArray> = {<PContainer> = > {<PObject> = {_vptr.PObject = 0x0}, > reference = 0x0}, elementSize = 3, theArray = 0x2 "", > allocatedDynamically = 1}, <No data fields>}, <No data > fields>}}, endBasicEncoding = 1}, > m_guid = {<PASN_OctetString> = {<PASN_ConstrainedObject> = {<PASN_Object> > = {<PObject> = {_vptr.PObject = 0x1}, > extendable = 135728008, tagClass = 165068888, tag = 1}, constraint > = 165068920, lowerLimit = 1, upperLimit = 0}, > value = {<PBaseArray<BYTE>> = {<PAbstractArray> = {<PContainer> = > {<PObject> = {_vptr.PObject = 0x0}, > reference = 0x8172660}, elementSize = 0, theArray = 0x0, > allocatedDynamically = 3}, <No data fields>}, <No data > fields>}}, <No data fields>}} > result = 14992308 > #3 0x0809f8d6 in CallRec::CompareCallId (this=0x1, CallId=0xb7eccd20) > at /usr/local/mmsvc/build/ptlib/include/ptlib/object.h:1549 > No locals. > #4 0x08091894 in CallTable::FindCallRec (this=0x9d5fe98, > CallId=@0xb7eccd20) > at > /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_ > function.h:680 > No locals. > #5 0x080fa9c0 in CallSignalSocket::OnH450CallTransfer (this=0xb77082a8, > ep=@0xb7ecd200, argument=0x9d92390) > at ProxyChannel.cxx:2516 > remoteParty = {<PCharArray> = {<PBaseArray<char>> = > {<PAbstractArray> = {<PContainer> = {<PObject> = { > ---Type <return> to continue, or q <return> to quit--- > _vptr.PObject = 0xea3e08}, reference = 0x9d95c48}, elementSize = > 1, theArray = 0x9d95c38 "100", > allocatedDynamically = 1}, <No data fields>}, <No data fields>}, <No > data fields>} > callIdentifier = Variable "callIdentifier" is not available. > (gdb) -- Jan Willamowius, jan@xxxxxxxxxxxxxx, http://www.gnugk.org/ ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________________ Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx Archive: http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-users Unsubscribe: http://lists.sourceforge.net/lists/listinfo/openh323gk-users Homepage: http://www.gnugk.org/