def __init__(self, encoder=None, decoder=None): if encoder is None: from amfast.encoder import Encoder encoder = Encoder() self.encoder = encoder if decoder is None: from amfast.decoder import Decoder decoder = Decoder() self.decoder = decoder
def open_connection(server, port): username = "******" password = "******" udata = {'user': username, 'pwd': password} data = {'cmd': 'login', 'data': udata} enc = Encoder(amf3=True) obj = enc.encode(data) bytes_send = str(len(obj)) + obj sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((server, int(port))) sent = sock.send(bytes_send) print("Send Data : ", bytes_send) data = sock.recv(1024) print("Received Data : ", data)
def setup_channel_set(channel_set): """Configures an amfast.remoting.channel.ChannelSet object.""" # Send log messages to STDOUT handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.DEBUG) amfast.logger.addHandler(handler) # These classes are for interacting with the Red5 echo test client. class_mapper = ClassDefMapper() class_mapper.mapClass( DynamicClassDef(RemoteClass, 'org.red5.server.webapp.echo.RemoteClass', amf3=False)) class_mapper.mapClass( ExternClassDef(ExternClass, 'org.red5.server.webapp.echo.ExternalizableClass')) # Set Channel options # We're going to use the same # Encoder and Decoder for all channels encoder = Encoder(use_collections=True, use_proxies=True, class_def_mapper=class_mapper, use_legacy_xml=True) decoder = Decoder(class_def_mapper=class_mapper) for channel in channel_set: channel.endpoint.encoder = encoder channel.endpoint.decoder = decoder # Map service targets to controller methods channel_set.service_mapper.default_service.mapTarget( CallableTarget(echo, 'echo')) service = Service('Red5Echo') service.mapTarget(CallableTarget(echo, 'echo')) channel_set.service_mapper.mapService(service)
from simplejson import loads, dumps from freepybx.model import * from freepybx.model import meta from freepybx.model.meta import * from datetime import datetime import pyamf import sys Session = scoped_session( sessionmaker(autoflush=True, autocommit=True, expire_on_commit=False)) Session.configure( bind=create_engine('postgresql://*****:*****@127.0.0.1/pbx')) decoder = Decoder(amf3=True) encoder = Encoder(amf3=True) ESL_HOST = "127.0.0.1" ESL_PORT = "8021" ESL_PASS = "******" def make_message(type, command, context, data, ext=None): m = Message() m.type = type m.command = command m.context = context m.data = data m.ext = ext
def createserver(config, rootdir, db): channel_set = TornadoChannelSet() polling_channel = TornadoChannel('amf') channel_set.mapChannel(polling_channel) class_mapper = ClassDefMapper() encoder = Encoder(amf3=True, use_collections=True, use_proxies=True, use_references=True, class_def_mapper=class_mapper) decoder = Decoder(amf3=True, class_def_mapper=class_mapper) for channel in channel_set: channel.endpoint.encoder = encoder channel.endpoint.decoder = decoder srcpath = os.path.join(rootdir, "../flex/lib/") if not os.path.exists(srcpath): srcpath = None for klass in EXPOSE_SERVICES: as3rpc.bind_amfast_service(klass, channel_set, class_mapper, args=(config, db), srcpath=srcpath) swf_path = os.path.join(rootdir, "media/swf") static_path = os.path.join(rootdir, "media") template_path = os.path.join(rootdir, "media/html") pcms_md5 = hashlib.md5( open(os.path.join(swf_path, "pcms.swf"), "rb").read()).hexdigest() return tornado.web.Application( [ (r"/remotepy/rpc/", remotepy.RemotePyHandler), (r"/pcms/amf/", polling_channel.request_handler), (r"/pcms/excel/", GeneratePatientExcelHandler, { "db": db }), (r"/admin/login/", AdminLoginHandler), (r"/admin/logout/", AdminLogoutHandler), (r"/admin/list/", AdminListStationsHandler, { "db": db }), (r"/admin/reset/sync/", AdminResetClientSyncHandler, { "db": db }), (r"/admin/status/", AdminStatusCheckHandler, { "db": db }), (r"/", FlashAppHandler, { "config": config, "title": _("VRS Analytics"), "flash_id": "pcms", "flash_version": "10.1.0", "flash_movie": "pcms.swf", "movie_md5": pcms_md5 }), (r"/(.*)", tornado.web.StaticFileHandler, { "path": swf_path }), ], login_url="/admin/login/", cookie_secret="529397d22d7bd16a1f4616726f3312fe4d4b48c1", static_path=static_path, template_path=template_path)
def setUp(self): self.class_mapper = class_def.ClassDefMapper() self.encoder = Encoder()
def testDecodeAmf3(self): return self._testDecoder(Decoder(amf3=True), Encoder(amf3=True), 'sample_2.log')
def testDecodeAmf0(self): return self._testDecoder(Decoder(), Encoder(), 'sample.log')
def testEncodeAmf3(self): return self._testEncoder(Encoder(amf3=True), 'sample.log')