Wap4410n stop transmission wi-fi

hi for all,
Im Michel from brazil,
I have a problem with wap4410n..  every day, the access point in variable time kick all wireless clients (red X in network status) and i need to reboot the equipament to connect again. the equipament do not stop respond in wired network.. i can reboot via web administrator to restart wi-fi connections 
total equipaments connected = aprox. 6 notebooks. all kicked in problem moment
max distance : 40 meters
sinal potence = normal - optimal
no-break = yes
others AP´s = no
firmware = atualized. last
channels = i try all channels and the problem persist.
security choose = wap2
frequence of the problem: aprox two times per day 
Can we help me?
tks
Michel

John has a pretty interesting observation. I recently reploaced my older WRT54G v1.1 with a V5 router and started having connectivity problems. I had no clue what was going on, my cable modem would constantly drop its signal, my xbox 360 couldn't hold a valid connection and I had all sorts of problems with my OSX boxes. I read this thread recently and decided to replace the v5 with my older router and hmmmm... suddenly my connection issues aren't issues anymore. (BTW I had recently already replaced my airport preferences so that isn't it)
Its only been a couple of days but it appears that my issues are gone. My next step is to replace my v5 firmware with either the Sveasoft firmware or the DD-WRT firmware and reconnect it.
This could be the solution to my problem, not sure what to say about the rest of you....
Cheers,
peter

Similar Messages

  • WAP4410N stops accepting wireless clients

    I have two WAP4410N. One of he accesspoints is connected to our wired LAN, called by now AP1. The other accesspoint is connected to the first accesspoint by WDS (Client mode) called now by AP2. I have upgraded both accesspoints to firmware 2.0.4.2. Both accesspoints are set to the same SSID and channel (6) and are set to mixed mode (B/G/N). After I two weeks they started to fail. When I connect to AP1 I don't reveive an IP-address of our DHCP server from our LAN. I'm able to connect to AP1 from our LAN. When I SSH to the box and I do an dmesg command, I see the following messages:
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    I'm still testing these devices and I hope I can use these devices in our production environment,which is not possible with these errors and outages.
    I can't connect to AP2 right now. I think the whole wireless interface isn't working anymore, unless I power off/power on the box. But it's hard testing when it works ok for two weeks and then stops.
    Message was edited by: Sander Cornelissen

    After your advice I did a factory reset of both AP's. From 17 october until today it worked fine. Today it crashed and the connection to the device isn't usable.
    In the dmesg, from the SSH console to the AP, I did notice the following text:
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    Going to erase from sector 00000085 to 00000086..
    erasing bf7e0000...
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
    I have to power off and power on again to make the device work.

  • 2 different WAP4410N stops responding

    Still having issues. I reconnected 4 laptops today on 2 different WAP4410n APs. The user will let me know if they get disconnected. Yesterday I even reflashed the firmward on them. Also in order to reconect to one of the Waps I had to cycle the power.
    The laptops are different
    One is a Dell Latitude c840 w/ Links wireless card and the other is a IBM t41 i believe.

    Just checking to see if there has ever been a resolution to this issue. I have several of these units set up and am experiencing this same issue. I  start them and they work fine for a few days, then nothing. I use WIFI Analyzer on my phone or tablet and they are just not available. If I login to the web interface and reboot the AP it starts working again. At times I have noticed that on WIFI Analyzer I will see the signal suddenly appear normal for one refresh cycle, then drop to nothing for a while, then suddenly reappear. I have screen shots of this is you think it would help.

  • WAP4410N stops randomly responding

    Hi Randy,
    We have a situation with 20 4410N's They are connected through a 2960 switch. They runned for about a year with no problems. We use the WiFi system with 10 cisco wireless ip phones, several workstations (5-10) and a few mobile devices.
    Three weeks ago we took 10-15 iPads in commission (almost equally divided over the AP's), since then the trouble started. Several accesspoints stop randomly responding a few times a, day. We updated to the latest firmware (2.0.4.2), but that did not solve the problems.
    Were using 3 SSID's WPA2 encryption and fixed IP's for the AP's. If there is anything more you need to know please contact me. This is a urgent problem for us! If we can't get a hold on this we have to replace all the AP's by other ones.

    Hello,
    On January 25th Cisco released version 2.0.6.1.  I have upgraded several units to this firmware and it has resolved the random not able to connect issue. 
    Try upgrading to that version, it is availble here:
    http://software.cisco.com/download/release.html?mdfid=282414137&catid=278875243&softwareid=282463166&release=2.0.6.1&relind=AVAILABLE&rellifecycle=&reltype=latest
    If you still have the issue after upgrading, do a factory reset and manually reconfigure the device.
    You also mentioned that you were using iPads.  Sometimes Apple's devices have trouble with WPA2 AES, so you might want to try switching the encryption to WPA-Personal (TKIP), or WPA Mixed, so that TKIP is also available.  Forget the wireless network on the iPad and then try reconnecting.
    Usually the upgrade will resolve the issue, if not try the reset.  If you are still having trouble after that call the SBSC at 1.866.606.1866 and we can open a support case for you.
    Christopher Ebert
    Network Support Engineer - Cisco Small Business Support Center
    *Please rate helpful posts*

  • WAP4410N stops responding with SRW2024

    I have the same problem with my two WAP4410N connected to my Cisco SRW2024 Gigabit switch.
    It appears that there would be a time where the PHY's between the WAP and the switch are hung.
    The lights on the Gigabit switch are constantly flashing.
    It is until I disconnect and reconnect the network cable between the WAP and the Gigabit switch
    that the problem is momentarily solved.  Then it seems like another high traffic usage of the
    WAP will cause the connection to hang.  This solutions is totally unacceptable as I am not
    willing to open my wiring closet every time to fix this hang.  Also I've lost precious data
    between my client and server because of this hang!
    I don't think the problem is with the Gigabit switch as I have other Gigabit devices connected
    to it and I never get them to hang like the WAP.
    I saw on the release notes (although the firmware has not been posted) that there is a problem
    with the WAP Gigabit PHY.  From the release notes, it seems the firmware will have an
    option to take down the speed of the WAP Gigabit PHY from 1000BT to 100TX.
    This would be a shame if this is the final solution as one main reason for purchasing the
    WAP4410N is its Gigabit capability.
    Being a networking PHY designer who had also worked on other Cisco products, I'm surprise
    that this problem had not been resolved in their qualification and interoperability lab.
    They should have been able to identify this problem quickly and provide the right fix.
    Cisco please help!

    Hi,
    I was made aware of this issue and the work around of setting copper port seed to 100 meg, just before X-mas.
    (please note: the work around will not advertise 1000M options).
    I didn't even question, if this would be fixed.
    I also have, to coin a expression, have my fingers crossed that the 'fix'  will be expedient, but i have no date.
    We both should check this community site to see if someone has already posed any extra information regarding this issue.
    regards Dave

  • WAP4410N stops responding very often

    Hi
    We found that they stop responding to any clients so they cannot get IP addresses, but we can ping the devices and enter the administration page. The only solution is to reboot the AP. we replaced for a new one one week ago under warranty period, we have also applied the latest firmware Version: 2.0.7.4 . I still find the same issue again today , any solution? as I checked this forum that many people complaints this product. Cisco support, any solution for me?

    What is the serial number of your unit? Also could you look at the syslogs and attach an copy of them to this post.
    Thanks
    Eric Moyers
    .:|:.:|:. CISCO | Eric Moyers | Cisco Technical Support |
    Wireless and Surveillance Subject Matter Expert
    Please rate helpful Posts and Let others know when your Question has been answered 
    You can click my name beside the picture if you need to email me directly 

  • WAP4410N stops responding with 2.0.0.5

    Any news on this? I have the same problem. After a day or so it just stops responding.
    I recently bought 3 of these to my office.
    Running 2.0.0.5 etc.

    Same problem here as well. I hope Cisco will offer a solution ASAP! I was thinking to RMA this product before warranty expires.
    -          Michel

  • [SOLVED] systemd times out stopping transmission.service

    After a recent update, systemd takes really long to shut transmission down either manually or while the computer is turning off.
    Both systemd and transmission were update at the same time so I don't know which one has caused this issue.
    I'm pretty sure it is systemd because starting and killing transmission-daemon manually works as usual.
    I suffer from this problem on two of my machines, one of which runs a fresh install (today).
    Any workarounds?
    Last edited by bel3atar (2013-09-26 01:02:22)

    jjacky wrote:https://bugs.archlinux.org/task/37007 ?
    This must be it. There's a patch to fix the issue.

  • WAP4410N stops responding on large file transfers

    Also experience this issue, latest firmware (7/17/2010 version).  Definately related to large file transfers.  Or, viewing videos (e.g. youtube) over RDP.
    Only power cycle gets responsiveness back.  Laptops remain connected, but with "Limited Connectivity".

    There's a limit of 10MB for a single RTMP message in LCDS, you're probably running into this but you're supposed to get a "TCMessageTooLargeException" when you go over 10MB. I think there might be a bug around bubbling this exception but either way, I think you should try to chop your file in 10MB chunks when using RTMP.

  • HT1810 Am a novice. Unable to view bank statements, empty box. A closed padlock appears at the top of the box. Banks says my security settings may be stopping transmission. Help.

    Trying to view bank statements. Clicking on month, box is empty with locked padlock appears at top. Bank says my settings may be preventing access. Preference shows no setting to be adjusted. Downloaded newest version of reader, so that's not it. Need help.

    I went into Java preferences and got lost. The advanced settings were confusing. Some things were enabled, some disabled. The language was foreign to me. Trying to avoid having to hire help for something that may be simple. Any other ideas? If I could unlock it, maybe that would do it. I appreciate your assistance, but unless I know what I'm doing, I don't dare screw up the settings.

  • Bug? Folders created by transmission is read-only to Windows file sharing

    It's a nice thing that transmission is supported in the LenovoEMC version of firmware. The thing is, folders created by this transmission are read-only, which means file can't be added, deleted nor modified from Windows file sharing (They are still be deleted with transmission though, but that's irrelavant).
    From my experience, this issue is caused by the value of unmask not properly set up in the settings.json file. This file can be modified when transmission is not running, but I didn't find a way to stop transmission from running / restart itself even after being killed from SSH.
    Please help.

    You have to have root access (which will void your warranty) to modify settings.json, that's why I wish Lenovo can come up with an official solution.
    If you don't mind viod the warranty, then after you stop transmission, you can log in as root via putty, then use nano to modify settings.json as mentioned below:
    http://forum.nas-central.org/viewtopic.php?f=279&t=7877&sid=30b572be20744201c78d224e3db49c97&start=1...

  • Transmission does not keep its configuration after restart

    Hi everyone,
    I have a problem coming up with gnome's last upgrade.
    Since Gnome 3.8 then, transmission 2.77 will not keep its configuration. I've already tried to erase the ~/.config/transmission folder in order to start transmission with a "clean" configuration but its not working.
    Does anyone have the same problem ? And more importantly, does anyone have a solution yet ?
    Thanks

    chord wrote:
    Common solution for configs rewriting prevent :
    chattr +i <your-config-file-name>
    It blocks any changes on locked file.
    If you need to rewrite/edit file, just unlock it with chattr -i, write changes and lock it again.
    I don't think that's a good idea, there is probably a valid reason a config file is being overwritten, your solution would disable the actual application from changing its own config file...
    I had a similar problem with the transmission daemon,
    Basically this is what I have deducted:
    Start transmission
    It reads config file
    Stop transmission
    It re-writes the config file with what it first read when it started plus applying changes you may have made via a GUI.
    Basically as I said earlier, if you edit transmissions config file while it is running with vim or nano or whatever, those changes will be over written when transmission stops.
    The solution is to either change settings from the GUI, or make sure there is no transmission running, then edit the config file and save it. Everything should then work so long as you haven't made a syntax error when editing the config file.
    Last edited by jrussell (2013-06-03 22:15:35)

  • DO i need some extra hardware interface for receving both Audio and video

    hi i m doing e-learning project. i have to capture video from webcam and voice from headphone and send to client.
    but my code is working fine for either one at a time.
    DO i need some extra hardware interface for receving both Audio and video. im using code AVTransmit and AVReceive found from this site only
    After running TX
    i give Dsound:// & vfw://0 in Media Locater only sound is received and no vedio
    and when i give vfw://0 in Media Locater only live video is transmited.
    im using JMF1.1.2e.
    if any one know the method to run or cause of it plz reply me soon. i will be very thankfull
    transmiter/server side code .first run TX on server
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.util.*;
    import javax.media.rtp.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    public class Tx extends JFrame implements ActionListener, KeyListener,
    MouseListener, WindowListener {
    Vector targets;
    JList list;
    JButton startXmit;
    JButton rtcp;
    JButton update;
    JButton expiration;
    JButton statistics;
    JButton addTarget;
    JButton removeTarget;
    JTextField tf_remote_address;
    JTextField tf_remote_data_port;
    JTextField tf_media_file;
    JTextField tf_data_port;
    TargetListModel listModel;
    AVTransmitter avTransmitter;
    RTCPViewer rtcpViewer;
    JCheckBox cb_loop;
    Config config;
    public Tx() {
    setTitle( "JMF/RTP Transmitter");
         config= new Config();
         GridBagLayout gridBagLayout= new GridBagLayout();
         GridBagConstraints gbc;
         JPanel p= new JPanel();
         p.setLayout( gridBagLayout);
         JPanel localPanel= createLocalPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.gridwidth= 2;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( localPanel, gbc);
         p.add( localPanel);
         JPanel targetPanel= createTargetPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 1;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( targetPanel, gbc);
    p.add( targetPanel);
         JPanel mediaPanel= createMediaPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 2;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( mediaPanel, gbc);
    p.add( mediaPanel);
    JPanel buttonPanel= new JPanel();
    rtcp= new JButton( "RTCP Monitor");
    update= new JButton( "Transmission Status");
         update.setEnabled( false);
         rtcp.addActionListener( this);
         update.addActionListener( this);
         buttonPanel.add( rtcp);
         buttonPanel.add( update);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 3;
    gbc.gridwidth= 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( buttonPanel, gbc);
         p.add( buttonPanel);
    getContentPane().add( p);
         list.addMouseListener( this);
         addWindowListener( this);
    pack();
    setVisible( true);
    private JPanel createMediaPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "Media Locator:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_media_file= new JTextField( 35);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_media_file, gbc);
         p.add( tf_media_file);
         tf_media_file.setText( config.media_locator);
         cb_loop= new JCheckBox( "loop");
         startXmit= new JButton( "Start Transmission");
         startXmit.setEnabled( true);
         startXmit.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 2;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( cb_loop, gbc);
         p.add( cb_loop);
         cb_loop.setSelected( true);
         cb_loop.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( startXmit, gbc);
         p.add( startXmit);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Source");
         p.setBorder( titledBorder);
         return p;
    private JPanel createTargetPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         targets= new Vector();
         for( int i= 0; i < config.targets.size(); i++) {
         targets.addElement( config.targets.elementAt( i));
    listModel= new TargetListModel( targets);
    list= new JList( listModel);
         list.addKeyListener( this);
         list.setPrototypeCellValue( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    JScrollPane scrollPane= new JScrollPane( list,
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( scrollPane, gbc);
         p.add( scrollPane);
    JPanel p1= new JPanel();
         p1.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_address= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_address, gbc);
         p1.add( tf_remote_address);
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_data_port, gbc);
         p1.add( tf_remote_data_port);     
    JPanel p2= new JPanel();
    addTarget= new JButton( "Add Target");     
    removeTarget= new JButton( "Remove Target");
         p2.add( addTarget);
         p2.add( removeTarget);
         addTarget.addActionListener( this);
         removeTarget.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.gridwidth= 2;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 20,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( p2, gbc);
         p1.add( p2);
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( p1, gbc);
         p.add( p1);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Targets");
         p.setBorder( titledBorder);
         return p;
    private JPanel createLocalPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         JTextField tf_local_host= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_local_host, gbc);
         p.add( tf_local_host);
         try {
    String host= InetAddress.getLocalHost().getHostAddress();     
         tf_local_host.setText( host);
         } catch( UnknownHostException e) {
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_data_port, gbc);
         p.add( tf_data_port);
         tf_data_port.setText( config.local_data_port);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Local Host");
         p.setBorder( titledBorder);
         return p;
    public void actionPerformed( ActionEvent event) {
    Object source= event.getSource();
         if( source == addTarget) {
         String ip= tf_remote_address.getText().trim();
         String port= tf_remote_data_port.getText().trim();
         String localPort= tf_data_port.getText().trim();
         addTargetToList( localPort, ip, port);
         if( avTransmitter != null) {
         avTransmitter.addTarget( ip, port);
         } else if( source == removeTarget) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              if( avTransmitter != null) {
         avTransmitter.removeTarget( target.ip, target.port);
              targets.removeElement( target);
              listModel.setData( targets);          
         } else if( source == startXmit) {
         if( startXmit.getLabel().equals( "Start Transmission")) {          
         int data_port= new Integer( tf_data_port.getText()).intValue();
              avTransmitter= new AVTransmitter( this, data_port);
         avTransmitter.start( tf_media_file.getText().trim(), targets);          
              avTransmitter.setLooping( cb_loop.isSelected());
         startXmit.setLabel( "Stop Transmission");
         } else if( startXmit.getLabel().equals( "Stop Transmission")) {
              avTransmitter.stop();
              avTransmitter= null;
              removeNonBaseTargets();
              listModel.setData( targets);
         startXmit.setLabel( "Start Transmission");          
         } else if( source == rtcp) {
         if( rtcpViewer == null) {
         rtcpViewer= new RTCPViewer();
         } else {
              rtcpViewer.setVisible( true);
              rtcpViewer.toFront();
         } else if( source == cb_loop) {
         if( avTransmitter != null) {
              avTransmitter.setLooping( cb_loop.isSelected());
    private void removeNonBaseTargets() {
         String localPort= tf_data_port.getText().trim();
         for( int i= targets.size(); i > 0;) {
         Target target= (Target) targets.elementAt( i - 1);
         if( !target.localPort.equals( localPort)) {
    targets.removeElement( target);
         i--;
    public void addTargetToList( String localPort,
                             String ip, String port) {     
    ListUpdater listUpdater= new ListUpdater( localPort, ip,
                                  port, listModel, targets);
    SwingUtilities.invokeLater( listUpdater);           
    public void rtcpReport( String report) {
         if( rtcpViewer != null) {
         rtcpViewer.report( report);
    public void windowClosing( WindowEvent event) {
         config.local_data_port= tf_data_port.getText().trim();
         config.targets= new Vector();
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( config.local_data_port)) {
              config.addTarget( target.ip, target.port);
         config.media_locator= tf_media_file.getText().trim();
         config.write();
    System.exit( 0);
    public void windowClosed( WindowEvent event) {
    public void windowDeiconified( WindowEvent event) {
    public void windowIconified( WindowEvent event) {
    public void windowActivated( WindowEvent event) {
    public void windowDeactivated( WindowEvent event) {
    public void windowOpened( WindowEvent event) {
    public void keyPressed( KeyEvent event) {
    public void keyReleased( KeyEvent event) {
    Object source= event.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
    public void keyTyped( KeyEvent event) {
    public void mousePressed( MouseEvent e) {
    public void mouseReleased( MouseEvent e) {
    public void mouseEntered( MouseEvent e) {
    public void mouseExited( MouseEvent e) {
    public void mouseClicked( MouseEvent e) {
    Object source= e.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              tf_remote_address.setText( target.ip);
              tf_remote_data_port.setText( target.port);
         int index= list.locationToIndex( e.getPoint());
    public static void main( String[] args) {
    new Tx();
    class TargetListModel extends AbstractListModel {
    private Vector options;
    public TargetListModel( Vector options) {
         this.options= options;
    public int getSize() {
         int size;
         if( options == null) {
         size= 0;
         } else {
         size= options.size();
         return size;
    public Object getElementAt( int index) {
    String name;
    if( index < getSize()) {
         Target o= (Target)options.elementAt( index);
    name= o.localPort + " ---> " + o.ip + ":" + o.port;
         } else {
         name= null;
         return name;
    public void setData( Vector data) {
         options= data;
         fireContentsChanged( this, 0, data.size());
    class ListUpdater implements Runnable {
    String localPort, ip, port;
    TargetListModel listModel;
    Vector targets;
    public ListUpdater( String localPort, String ip, String port,
                   TargetListModel listModel, Vector targets) {
         this.localPort= localPort;
         this.ip= ip;
         this.port= port;
         this.listModel= listModel;
         this.targets= targets;
    public void run() {
    Target target= new Target( localPort, ip, port);
         if( !targetExists( localPort, ip, port)) {
         targets.addElement( target);
    listModel.setData( targets);
    public boolean targetExists( String localPort, String ip, String port) {
         boolean exists= false;
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( localPort)
         && target.ip.equals( ip)
              && target.port.equals( port)) {          
              exists= true;
         break;
         return exists;
    >>>>>>>>>>>>>>>>>
    import java.awt.*;
    import java.io.*;
    import java.net.InetAddress;
    import java.util.*;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import javax.media.control.TrackControl;
    import javax.media.control.QualityControl;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.rtp.rtcp.*;
    public class AVTransmitter implements ReceiveStreamListener, RemoteListener,
    ControllerListener {
    // Input MediaLocator
    // Can be a file or http or capture source
    private MediaLocator locator;
    private String ipAddress;
    private int portBase;
    private Processor processor = null;
    private RTPManager rtpMgrs[];
    private int localPorts[];
    private DataSource dataOutput = null;
    private int local_data_port;
    private Tx tx;
    public AVTransmitter( Tx tx, int data_port) {
         this.tx= tx;
         local_data_port= data_port;
    * Starts the transmission. Returns null if transmission started ok.
    * Otherwise it returns a string with the reason why the setup failed.
    public synchronized String start( String filename, Vector targets) {
         String result;
         locator= new MediaLocator( filename);
         // Create a processor for the specified media locator
         // and program it to output JPEG/RTP
         result = createProcessor();
         if (result != null) {
         return result;
         // Create an RTP session to transmit the output of the
         // processor to the specified IP address and port no.
         result = createTransmitter( targets);
         if (result != null) {
         processor.close();
         processor = null;
         return result;
         // Start the transmission
         processor.start();
         return null;
    * Use the RTPManager API to create sessions for each media
    * track of the processor.
    private String createTransmitter( Vector targets) {
         // Cheated. Should have checked the type.
         PushBufferDataSource pbds = (PushBufferDataSource)dataOutput;
         PushBufferStream pbss[] = pbds.getStreams();
         rtpMgrs = new RTPManager[pbss.length];
         localPorts = new int[ pbss.length];
         SessionAddress localAddr, destAddr;
         InetAddress ipAddr;
         SendStream sendStream;
         int port;
         SourceDescription srcDesList[];
         for (int i = 0; i < pbss.length; i++) {
         // for (int i = 0; i < 1; i++) {
         try {
              rtpMgrs[i] = RTPManager.newInstance();     
              port = local_data_port + 2*i;
              localPorts[ i]= port;
              localAddr = new SessionAddress( InetAddress.getLocalHost(),
                                  port);
              rtpMgrs.initialize( localAddr);          
              rtpMgrs[i].addReceiveStreamListener(this);
              rtpMgrs[i].addRemoteListener(this);
         for( int k= 0; k < targets.size(); k++) {
              Target target= (Target) targets.elementAt( k);
              int targetPort= new Integer( target.port).intValue();
              addTarget( localPorts[ i], rtpMgrs[ i], target.ip, targetPort + 2*i);
              sendStream = rtpMgrs[i].createSendStream(dataOutput, i);          
              sendStream.start();
         } catch (Exception e) {
              e.printStackTrace();
              return e.getMessage();
         return null;
    public void addTarget( String ip, String port) {
         for (int i= 0; i < rtpMgrs.length; i++) {
         int targetPort= new Integer( port).intValue();
         addTarget( localPorts[ i], rtpMgrs[ i], ip, targetPort + 2*i);
    public void addTarget( int localPort, RTPManager mgr, String ip, int port) {
         try {
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         mgr.addTarget( addr);
         tx.addTargetToList( localPort + "", ip, port + "");
         } catch( Exception e) {
         e.printStackTrace();
    public void removeTarget( String ip, String port) {
         try {     
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTarget( addr, "target removed from transmitter.");
         } catch( Exception e) {
         e.printStackTrace();
    boolean looping= true;
    public void controllerUpdate( ControllerEvent ce) {
         System.out.println( ce);
         if( ce instanceof DurationUpdateEvent) {
         Time duration= ((DurationUpdateEvent) ce).getDuration();
         System.out.println( "duration: " + duration.getSeconds());
         } else if( ce instanceof EndOfMediaEvent) {
         System.out.println( "END OF MEDIA - looping=" + looping);
         if( looping) {
         processor.setMediaTime( new Time( 0));
              processor.start();
    public void setLooping( boolean flag) {
         looping= flag;
    public void update( ReceiveStreamEvent event) {
         String timestamp= getTimestamp();
         StringBuffer sb= new StringBuffer();
         if( event instanceof InactiveReceiveStreamEvent) {
         sb.append( timestamp + " Inactive Receive Stream");
         } else if( event instanceof ByeEvent) {
         sb.append( timestamp + " Bye");
         } else {
         System.out.println( "ReceiveStreamEvent: "+ event);
         tx.rtcpReport( sb.toString());     
    public void update( RemoteEvent event) {     
         String timestamp= getTimestamp();
         if( event instanceof ReceiverReportEvent) {
         ReceiverReport rr= ((ReceiverReportEvent) event).getReport();
         StringBuffer sb= new StringBuffer();
         sb.append( timestamp + " RR");
         if( rr != null) {
              Participant participant= rr.getParticipant();
              if( participant != null) {
              sb.append( " from " + participant.getCNAME());
              sb.append( " ssrc=" + rr.getSSRC());
              } else {
              sb.append( " ssrc=" + rr.getSSRC());
              tx.rtcpReport( sb.toString());
         } else {
         System.out.println( "RemoteEvent: " + event);
    private String getTimestamp() {
         String timestamp;
         Calendar calendar= Calendar.getInstance();
         int hour= calendar.get( Calendar.HOUR_OF_DAY);
         String hourStr= formatTime( hour);
         int minute= calendar.get( Calendar.MINUTE);
         String minuteStr= formatTime( minute);
         int second= calendar.get( Calendar.SECOND);
         String secondStr= formatTime( second);
         timestamp= hourStr + ":" + minuteStr + ":" + secondStr;     
         return timestamp;
    private String formatTime( int time) {     
         String timeStr;
         if( time < 10) {
         timeStr= "0" + time;
         } else {
         timeStr= "" + time;
         return timeStr;
    * Stops the transmission if already started
    public void stop() {
         synchronized (this) {
         if (processor != null) {
              processor.stop();
              processor.close();
              processor = null;
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTargets( "Session ended.");
              rtpMgrs[ i].dispose();
    public String createProcessor() {
         if (locator == null) {
         return "Locator is null";
         DataSource ds;
         DataSource clone;
         try {
         ds = javax.media.Manager.createDataSource(locator);
         } catch (Exception e) {
         return "Couldn't create DataSource";
         // Try to create a processor to handle the input media locator
         try {
         processor = javax.media.Manager.createProcessor(ds);
         processor.addControllerListener( this);     
         } catch (NoProcessorException npe) {
         return "Couldn't create processor";
         } catch (IOException ioe) {
         return "IOException creating processor";
         // Wait for it to configure
         boolean result = waitForState(processor, Processor.Configured);
         if (result == false)
         return "Couldn't configure processor";
         // Get the tracks from the processor
         TrackControl [] tracks = processor.getTrackControls();
         // Do we have atleast one track?
         if (tracks == null || tracks.length < 1)
         return "Couldn't find tracks in processor";
         // Set the output content descriptor to RAW_RTP
         // This will limit the supported formats reported from
         // Track.getSupportedFormats to only valid RTP formats.
         ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);
         processor.setContentDescriptor(cd);
         Format supported[];
         Format chosen;
         boolean atLeastOneTrack = false;
         // Program the tracks.
         for (int i = 0; i < tracks.length; i++) {
         Format format = tracks[i].getFormat();
         if (tracks[i].isEnabled()) {
              supported = tracks[i].getSupportedFormats();
              // We've set the output content to the RAW_RTP.
              // So all the supported formats should work with RTP.
              // We'll just pick the first one.
              if (supported.length > 0) {
              if (supported[0] instanceof VideoFormat) {
                   // For video formats, we should double check the
                   // sizes since not all formats work in all sizes.
                   chosen = checkForVideoSizes(tracks[i].getFormat(),
                                       supported[0]);
              } else
                   chosen = supported[0];
              tracks[i].setFormat(chosen);
              System.err.println("Track " + i + " is set to transmit as:");
              System.err.println(" " + chosen);
              atLeastOneTrack = true;
              } else
              tracks[i].setEnabled(false);
         } else
              tracks[i].setEnabled(false);
         if (!atLeastOneTrack)
         return "Couldn't set any of the tracks to a valid RTP format";
         // Realize the processor. This will internally create a flow
         // graph and attempt to create an output datasource for JPEG/RTP
         // audio frames.
         result = waitForState(processor, Controller.Realized);
         if (result == false)
         return "Couldn't realize processor";
         // Set the JPEG quality to .5.
         setJPEGQuality(processor, 0.5f);
         // Get the output data source of the processor
         dataOutput = processor.getDataOutput();
         return null;
    static SessionAddress destAddr1, destAddr2;
    * For JPEG and H263, we know that they only work for particular
    * sizes. So we'll perform extra checking here to make sure they
    * are of the right sizes.
    Format checkForVideoSizes(Format original, Format supported) {
         int width, height;
         Dimension size = ((VideoFormat)original).getSize();
         Format jpegFmt = new Format(VideoFormat.JPEG_RTP);
         Format h263Fmt = new Format(VideoFormat.H263_RTP);
         if (supported.matches(jpegFmt)) {
         // For JPEG, make sure width and height are divisible by 8.
         width = (size.width % 8 == 0 ? size.width :
                        (int)(size.width / 8) * 8);
         height = (size.height % 8 == 0 ? size.height :
                        (int)(size.height / 8) * 8);
         } else if (supported.matches(h263Fmt)) {
         // For H.263, we only support some specific sizes.
         if (size.width < 128) {
              width = 128;
              height = 96;
         } else if (size.width < 176) {
              width = 176;
              height = 144;
         } else {
              width = 352;
              height = 288;
         } else {
         // We don't know this particular format. We'll just
         // leave it alone then.
         return supported;
         return (new VideoFormat(null,
                        new Dimension(width, height),
                        Format.NOT_SPECIFIED,
                        null,
                        Format.NOT_SPECIFIED)).intersects(supported);
    * Setting the encoding quality to the specified value on the JPEG encoder.
    * 0.5 is a good default.
    void setJPEGQuality(Player p, float val) {
         Control cs[] = p.getControls();
         QualityControl qc = null;
         VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
         // Loop through the controls to find the Quality control for
         // the JPEG encoder.
         for (int i = 0; i < cs.length; i++) {
         if (cs[i] instanceof QualityControl &&
              cs[i] instanceof Owned) {
              Object owner = ((Owned)cs[i]).getOwner();
              // Check to see if the owner is a Codec.
              // Then check for the output format.
              if (owner instanceof Codec) {
              Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
              for (int j = 0; j < fmts.length; j++) {
                   if (fmts[j].matches(jpegFmt)) {
                   qc = (QualityControl)cs[i];
                   qc.setQuality(val);
                   System.err.println("- Setting quality to " +
                             val + " on " + qc);
                   break;
              if (qc != null)
              break;
    * Convenience methods to handle processor's state changes.
    private Integer stateLock = new Integer(0);
    private boolean failed = false;
    Integer getStateLock() {
         return stateLock;
    void setFailed() {
         failed = true;
    private synchronized boolean waitForState(Processor p, int state) {
         p.addControllerListener(new StateListener());
         failed = false;
         // Call the required method on the processor
         if (state == Processor.Configured) {
         p.configure();
         } else if (state == Processor.Realized) {
         p.realize();
         // Wait until we get an event that confirms the
         // success of the method, or a failure event.
         // See StateListener inner class
         while (p.getState() < state && !failed) {
         synchronized (getStateLock()) {
              try {
              getStateLock().wait();
              } catch (InterruptedException ie) {
              return false;
         if (failed)
         return false;
         else
         return true;
    * Inner Classes
    class StateListener implements ControllerListener {
         public void controllerUpdate(ControllerEvent ce) {
         // If there was an error during configure or
         // realiz

    I do this all the time, I put my MBP to a 60 inch Sharp. If you have the video working do the simple thing first. Check to make sure your sound is on your TV and Mac. Then if that doesn't work go to System Prefrences and under sound go to a tab called Output and see if your TV is listed and if it is change it to that setting
    Hope It Works

  • File archiving  in application server ?

    Hi Experts,
    How to a archive file in application server to another folder? Is there any function module used for that?.
    Thanks

    Hi Dan
    For archiving, we can use FM: <b>EPS_DELETE_FILE</b> for archiving a file.
    Below code can help you understand for moving a file:
    [code]FUNCTION y_copy_file_within_appli_serv.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(RFC_DESTINATION) LIKE  RFCDES-RFCDEST
    *"     VALUE(LOCAL_FILE) LIKE  EPSF-EPSFILNAM
    *"     VALUE(LOCAL_DIRECTORY) LIKE  EPSF-EPSDIRNAM DEFAULT SPACE
    *"     VALUE(REMOTE_FILE) LIKE  EPSF-EPSFILNAM DEFAULT SPACE
    *"     VALUE(REMOTE_DIRECTORY) LIKE  EPSF-EPSDIRNAM DEFAULT SPACE
    *"     VALUE(OVERWRITE_MODE) LIKE  EPSF-EPSOVRWRI DEFAULT SPACE
    *"     VALUE(TEXT_MODE) LIKE  EPSF-EPSTXTMOD DEFAULT SPACE
    *"     VALUE(TRANSMISSION_MONITOR) LIKE  EPSF-EPSTRAMON DEFAULT 'X'
    *"     VALUE(RECORDS_PER_TRANSFER) LIKE  EPSF-EPSRECTRA DEFAULT 10
    *"     VALUE(REQUESTED_FILE_SIZE) LIKE  EPSF-EPSFILSIZ DEFAULT 0
    *"     VALUE(MONITOR_TITLE) LIKE  EPSF-EPSTEXT OPTIONAL
    *"     VALUE(MONITOR_TEXT1) LIKE  EPSF-EPSTEXT OPTIONAL
    *"     VALUE(MONITOR_TEXT2) LIKE  EPSF-EPSTEXT OPTIONAL
    *"     VALUE(PROGRESS_TEXT) LIKE  EPSF-EPSTEXT OPTIONAL
    *"     VALUE(OBJECT_NAME) LIKE  EPSF-EPSFILNAM OPTIONAL
    *"  EXPORTING
    *"     VALUE(LOCAL_DIRECTORY) LIKE  EPSF-EPSDIRNAM
    *"     VALUE(LOCAL_PATH) LIKE  EPSF-EPSPATH
    *"     VALUE(REMOTE_FILE) LIKE  EPSF-EPSFILNAM
    *"     VALUE(REMOTE_DIRECTORY) LIKE  EPSF-EPSDIRNAM
    *"     VALUE(REMOTE_PATH) LIKE  EPSF-EPSPATH
    *"     VALUE(FILE_SIZE) LIKE  EPSF-EPSFILSIZ
    *"     VALUE(LOCAL_SYSTEM_INFO) LIKE  EPSFTPSI STRUCTURE  EPSFTPSI
    *"     VALUE(REMOTE_SYSTEM_INFO) LIKE  EPSFTPSI STRUCTURE  EPSFTPSI
    *"  EXCEPTIONS
    *"      OPEN_INPUT_FILE_FAILED
    *"      OPEN_OUTPUT_FILE_FAILED
    *"      READ_BLOCK_FAILED
    *"      WRITE_BLOCK_FAILED
    *"      CLOSE_OUTPUT_FILE_FAILED
    *"      INVALID_FILE_SIZE
    *"      STOPPED_BY_USER
    *"      INVALID_INPUT_FILE_SIZE
    *"      RESTART_FAILED
    *"      CONNECTION_FAILED
    *"      INVALID_VERSION
      DATA: BEGIN OF eps_buffer OCCURS 10.
              INCLUDE STRUCTURE tbl8000.
      DATA: END   OF eps_buffer.
      DATA: BEGIN OF eps_txtbuf OCCURS 0.
              INCLUDE STRUCTURE epsteco.
      DATA: END   OF eps_txtbuf.
      DATA: ls_save_moni           LIKE g$moni.
      DATA: lv_local_file_size     LIKE epsf-epsfilsiz,
            lv_remote_file_size    LIKE epsf-epsfilsiz,
            lv_block_size          LIKE epsf-epsfilsiz,
            lv_number_of_records   LIKE epsf-epsrectra,
            lv_last_record_length  LIKE epsf-epsreclen,
            lv_max_record_length   LIKE epsf-epsreclen,
            lv_end_of_file         LIKE epsf-epsflag,
            lv_low_rc              LIKE sy-subrc,
            lv_rfc_message         LIKE sy-msgv1,
            lv_restart_flag        LIKE epsf-epsflag,
            lv_pattern             LIKE tbl8000-line,
            lv_records_to_skip     LIKE epsf-epsrectra,
            lv_skiped_size         LIKE epsf-epsfilsiz.
    check parameters   (only if not started from EPS_ftp_mput)
      IF transmission_monitor <> gc_mon_flag_m.
        PERFORM get_ftp_system_info             " get ftp system info
                USING
                    rfc_destination
                CHANGING
                    local_system_info
                    remote_system_info.
        PERFORM check_ftp_version               " check ftp version
                USING
                    text_mode
                    remote_system_info.
        PERFORM check_overwrite_mode            " check OVERWRITE_MODE
                USING
                    text_mode
                CHANGING
                    overwrite_mode.
        PERFORM check_records_per_transfer      " check RECORDS_PER_TRANSFER
                USING
                    text_mode
                CHANGING
                    records_per_transfer.
      ENDIF.
    determine block_size [byte]   (binary mode only)
      IF text_mode <> 'X'.
    *>>> Begin of modification for change log reference UnicodeC <<<
       DESCRIBE FIELD eps_buffer-line LENGTH lv_max_record_length.
        DESCRIBE FIELD eps_buffer-line LENGTH lv_max_record_length IN
        BYTE MODE.
    *<<< End   of modification for change log reference UnicodeC >>>
        lv_block_size = lv_max_record_length * records_per_transfer.
      ENDIF.
    open local file for input
      CALL FUNCTION 'EPS_OPEN_INPUT_FILE'
        EXPORTING
          file_name              = local_file
          dir_name               = local_directory
          text_mode              = text_mode
        IMPORTING
          dir_name               = local_directory
          file_path              = local_path
          file_size              = lv_local_file_size
        EXCEPTIONS
          invalid_eps_subdir     = 11
          sapgparam_failed       = 12
          build_directory_failed = 13
          no_authorization       = 14
          build_path_failed      = 15
          open_failed            = 16
          read_directory_failed  = 17
          read_attributes_failed = 18.
      lv_low_rc = sy-subrc.
      IF sy-subrc <> 0.
        CALL FUNCTION 'EPS_CLOSE_FILE'
          EXPORTING
            file_name = local_file
            dir_name  = local_directory
          EXCEPTIONS
            OTHERS    = 99.
        MESSAGE e001 WITH lv_low_rc local_file local_directory
                          space            " rfc message
                     RAISING open_input_file_failed.
      ENDIF.
    check file size
      IF requested_file_size <> 0 AND
         requested_file_size <> lv_local_file_size.
        CALL FUNCTION 'EPS_CLOSE_FILE'
          EXPORTING
            file_name = local_file
            dir_name  = local_directory
          EXCEPTIONS
            OTHERS    = 99.
        lv_low_rc = 0.
        MESSAGE e008 WITH lv_low_rc local_file
                          requested_file_size lv_local_file_size
                     RAISING invalid_input_file_size.
      ENDIF.
    open remote file for output
      IF remote_file = space.              " no remote file specified
        remote_file = local_file.          " -> remote file = local file
      ENDIF.
      IF text_mode = 'X'       AND         " no restart in textmode
         overwrite_mode = 'R'.
        overwrite_mode = 'S'.
      ENDIF.
      CALL FUNCTION 'EPS_OPEN_OUTPUT_FILE'
        DESTINATION rfc_destination
        EXPORTING
          file_name              = remote_file
          dir_name               = remote_directory
          file_size_request      = lv_local_file_size
          overwrite_mode         = overwrite_mode
          text_mode              = text_mode
        IMPORTING
          dir_name               = remote_directory
          file_path              = remote_path
          restart_flag           = lv_restart_flag
        EXCEPTIONS
          system_failure         = 03  MESSAGE lv_rfc_message
          communication_failure  = 04  MESSAGE lv_rfc_message
          invalid_eps_subdir     = 11
          sapgparam_failed       = 12
          build_directory_failed = 13
          no_authorization       = 14
          build_path_failed      = 15
          open_failed            = 16
          file_already_exists    = 19.
      lv_low_rc = sy-subrc.
      IF sy-subrc <> 0.
        CALL FUNCTION 'EPS_CLOSE_FILE'
          DESTINATION rfc_destination
          EXPORTING
            file_name = remote_file
            dir_name  = remote_directory
          EXCEPTIONS
            OTHERS    = 99.
        CALL FUNCTION 'EPS_CLOSE_FILE'
          EXPORTING
            file_name = local_file
            dir_name  = local_directory
          EXCEPTIONS
            OTHERS    = 99.
        MESSAGE e002 WITH lv_low_rc remote_file remote_directory
                          lv_rfc_message
                     RAISING open_output_file_failed.
      ENDIF.
    restart file transfer
      IF lv_restart_flag = 'X'.
        ls_save_moni = g$moni.             " save monitor data
        CALL FUNCTION 'EPS_SEEK_OUTPUT_FILE'
          DESTINATION rfc_destination
          EXPORTING
            file_name              = remote_file
            dir_name               = remote_directory
            records_per_transfer   = records_per_transfer
            object_name            = object_name
          IMPORTING
            pattern                = lv_pattern
            records_to_skip        = lv_records_to_skip
          EXCEPTIONS
            system_failure         = 03  MESSAGE lv_rfc_message
            communication_failure  = 04  MESSAGE lv_rfc_message
            invalid_eps_subdir     = 11
            sapgparam_failed       = 12
            build_directory_failed = 13
            no_authorization       = 14
            build_path_failed      = 15
            open_failed            = 16
            read_directory_failed  = 17
            read_attributes_failed = 18
            read_failure           = 20
            write_failure          = 21
            OTHERS                 = 99.
        lv_low_rc = sy-subrc.
        IF sy-subrc <> 0.
          CALL FUNCTION 'EPS_CLOSE_FILE'
            EXPORTING
              file_name = local_file
              dir_name  = local_directory
            EXCEPTIONS
              OTHERS    = 99.
          g$moni = ls_save_moni.           " restore monitor data
          MESSAGE e009 WITH lv_low_rc remote_file remote_directory
                            lv_rfc_message
                       RAISING restart_failed.
        ENDIF.
        CALL FUNCTION 'EPS_SEEK_INPUT_FILE'
          EXPORTING
            pattern              = lv_pattern
            records_to_skip      = lv_records_to_skip
            file_path            = local_path
            records_per_transfer = records_per_transfer
          EXCEPTIONS
            read_failure         = 20
            write_failure        = 21
            end_of_file          = 22
            pattern_not_found    = 23
            OTHERS               = 99.
        lv_low_rc = sy-subrc.
        IF sy-subrc <> 0.
          CALL FUNCTION 'EPS_CLOSE_FILE'
            DESTINATION rfc_destination
            EXPORTING
              file_name = remote_file
              dir_name  = remote_directory
            EXCEPTIONS
              OTHERS    = 99.
          CALL FUNCTION 'EPS_CLOSE_FILE'
            EXPORTING
              file_name = local_file
              dir_name  = local_directory
            EXCEPTIONS
              OTHERS    = 99.
          CALL FUNCTION 'EPS_DELETE_FILE'
            DESTINATION rfc_destination
            EXPORTING
              file_name = remote_file
              dir_name  = remote_directory
            EXCEPTIONS
              OTHERS    = 99.
          g$moni = ls_save_moni.           " restore monitor data
          MESSAGE e009 WITH lv_low_rc remote_file remote_directory
                            space          " rfc message
                       RAISING restart_failed.
        ENDIF.
        lv_skiped_size = lv_records_to_skip * lv_max_record_length.
        g$moni = ls_save_moni.             " restore monitor data
      ENDIF.
    start transmission monitor
      IF transmission_monitor <> 'M'.
        PERFORM monitor_open
                USING transmission_monitor
                      monitor_title.
        PERFORM monitor_set_values
                USING gc_ftp_put
                      progress_text
                      monitor_text1
                      monitor_text2
                      rfc_destination
                      local_file
                      0                         " total files
                      0                         " current file
                      0                         " maxval gauge 1
                      lv_local_file_size        " maxval gauge 2
                      0                         " skiped size gauge 1
                      lv_skiped_size.           " skiped size gauge 2
      ELSE.
        PERFORM monitor_update_values
                USING 0                         " increment
                      0                         " skiped size gauge 1
                      lv_skiped_size.           " skiped size gauge 2
      ENDIF.
    file transfer ------------------------------------------ begin -------
      CLEAR lv_end_of_file.
      WHILE lv_end_of_file <> 'X'.
      read block from input file
        IF text_mode = 'X'.
          REFRESH eps_txtbuf.
          CALL FUNCTION 'EPS_READ_TEXT_BLOCK'
            EXPORTING
              file_path            = local_path
              records_per_transfer = records_per_transfer
            IMPORTING
              end_of_file          = lv_end_of_file
            TABLES
              eps_buffer           = eps_txtbuf
            EXCEPTIONS
              read_failure         = 20.
        ELSE.
          REFRESH eps_buffer.
          CALL FUNCTION 'EPS_READ_BLOCK'
            EXPORTING
              file_path            = local_path
              records_per_transfer = records_per_transfer
            IMPORTING
              number_of_records    = lv_number_of_records
              last_record_length   = lv_last_record_length
              end_of_file          = lv_end_of_file
            TABLES
              eps_buffer           = eps_buffer
            EXCEPTIONS
              read_failure         = 20.
        ENDIF.
        lv_low_rc = sy-subrc.
        IF sy-subrc <> 0.
          IF transmission_monitor = 'X'.        " stop monitor
            PERFORM monitor_stop.
          ENDIF.
          MESSAGE e003 WITH lv_low_rc local_path space
                       RAISING read_block_failed.
        ENDIF.
      write block into output file
        IF text_mode = 'X'.
          CALL FUNCTION 'EPS_WRITE_TEXT_BLOCK'
            DESTINATION rfc_destination
            EXPORTING
              file_path             = remote_path
            IMPORTING
              transfered_bytes      = lv_block_size
            TABLES
              eps_buffer            = eps_txtbuf
            EXCEPTIONS
              system_failure        = 03  MESSAGE lv_rfc_message
              communication_failure = 04  MESSAGE lv_rfc_message
              write_failure         = 21.
        ELSE.
          CALL FUNCTION 'EPS_WRITE_BLOCK'
            DESTINATION rfc_destination
            EXPORTING
              file_path             = remote_path
              number_of_records     = lv_number_of_records
              last_record_length    = lv_last_record_length
            TABLES
              eps_buffer            = eps_buffer
            EXCEPTIONS
              system_failure        = 03  MESSAGE lv_rfc_message
              communication_failure = 04  MESSAGE lv_rfc_message
              write_failure         = 21.
        ENDIF.
        lv_low_rc = sy-subrc.
        IF sy-subrc <> 0.
          IF transmission_monitor = 'X'.        " stop monitor
            PERFORM monitor_stop.
          ENDIF.
          MESSAGE e004 WITH lv_low_rc remote_path lv_rfc_message
                       RAISING write_block_failed.
        ENDIF.
      update transmission monitor
        PERFORM monitor_update_values
                USING lv_block_size             " increment
                      0                         " skiped size gauge 1
                      0.                        " skiped size gauge 2
        IF g$moni-cancel = 'X'.                 " stop transmission
          MESSAGE e007 RAISING stopped_by_user.
        ENDIF.
      ENDWHILE.
    file transfer ------------------------------------------ end ---------
    stop transmission monitor
      IF transmission_monitor = 'X'.
        PERFORM monitor_stop.
      ENDIF.
    close output file and get size
      CALL FUNCTION 'EPS_CLOSE_FILE'
        DESTINATION rfc_destination
        EXPORTING
          file_name              = remote_file
          dir_name               = remote_directory
        IMPORTING
          file_size              = lv_remote_file_size
        EXCEPTIONS
          system_failure         = 03  MESSAGE lv_rfc_message
          communication_failure  = 04  MESSAGE lv_rfc_message
          build_path_failed      = 15
          read_directory_failed  = 17
          read_attributes_failed = 18.
      lv_low_rc = sy-subrc.
      IF sy-subrc <> 0.
        MESSAGE e005 WITH lv_low_rc remote_file remote_directory
                          lv_rfc_message
                     RAISING close_output_file_failed.
      ENDIF.
    compare size of local and remote file   (binary mode only)
      IF text_mode <> 'X'.
        IF lv_local_file_size <> lv_remote_file_size.
          lv_low_rc = 0.
          MESSAGE e006 WITH lv_low_rc local_file lv_local_file_size
                       RAISING invalid_file_size.
        ENDIF.
      ENDIF.
      file_size = lv_local_file_size.
    ENDFUNCTION.[/code]
    Regards
    Eswar

  • Cant send my photos by email from computor.

    when I want to send my photos silverlight says it has a problem & shuts down/stops transmission. Either this is changed or firefox goes!!!

    There are a couple options you could try under these articles
    [[using the silverlight plugin with firefox]]
    [[plugin crash reports]]
    and a thread of a similar issue that you may find useful here:
    https://support.mozilla.org/en-US/questions/908363?s=silverlight&r=8&e=sph&as=s

Maybe you are looking for